为GWT设置开发环境

介绍

这是旨在用Java开发跨平台移动应用程序的系列文章的一部分 。 在此博客文章中,我们将了解GWT是什么,并为GWT设置开发环境。

GWT是一个开源开发工具包,用于开发基于浏览器的复杂Ajax应用程序。 使用GWT,您可以用Java开发Rich Internet Applications(RIA),然后将其编译为JavaScript并与跨浏览器兼容。

在GWT中开发Web应用程序的一些优点是:

由于GWT应用程序可以用Java开发,因此您可以享受用Java开发的所有优势,例如自动完成,调试,重构,代码重用,多态,重载,重载。 Java具有大量的开发工具,例如Eclipse,NetBeans,JUnit和Maven等,可用于开发Rich Internet Applications(RIA)。

与Java项目相比,维护大型JavaScript项目并不容易。 但是您需要JavaScript才能在浏览器中运行Rich Internet Applications。 GWT结合了这两个优点。 您使用Java开发应用程序,然后将它们编译为JavaScript,因此您将两者兼具。

GWT与Java中的AWT和Swing包几乎相似,因此对于Java开发人员来说学习曲线很低。

在市场上支持几种浏览器是一项艰巨的任务。 每个浏览器都会创建自己的一系列问题。 GWT通过为每个浏览器创建优化JavaScript代码来专门解决该浏览器的问题,从而解决了该问题。 因此,您可以支持几乎所有主要的浏览器,包括基于Android,iPad和iPhone的浏览器,而不必担心每个浏览器的怪癖。

与Java编程的其他方面相比,用Java开发UI是一项艰巨的任务。 GWT通过提供几个UI窗口小部件来解决该问题,并且您还可以扩展现有的窗口小部件并根据需要创建自己的自定义窗口小部件。

GWT的一些局限性是:

由于Java代码已编译为可在浏览器中运行JavaScript,因此需要在浏览器中启用JavaScript。 如果未在浏览器上启用JavaScript,则这些应用程序将无法运行。

如果您有可以创建HTML页面的专业UI设计师,则将无法使用。 您可能必须实施Designer在GWT中再次创建的内容。

由GWT创建的网页无法被搜索引擎索引,因为这些应用程序是动态生成的。

我认为除了列表中的第二个缺点外,其他都没有太大关系。 仅用HTML提供丰富的Internet应用程序很困难。 您将需要JavaScript才能创建富Internet应用程序。 某些应用程序提供了有限版本的应用程序,如果禁用了JavaScript则可以使用,但是大多数应用程序都需要JavaScript,因此您不是其中之一。 并且没有理由为什么大量用户会在其浏览器上禁用JavaScript。

并且搜索引擎可以为索引编制工作。 索引页面可以用html创建,其余页面可以用GWT创建。 GWT提供了以html格式定义索引页的选项。 因此,索引页面仍然可以被搜索引擎索引,而其他页面大多是动态创建的数据,因此除非您是某种内容管理系统(CMS),否则它们无需出现在搜索中。

像所有框架一样,GWT并不能解决所有问题,但可以确保Java开发人员更高效地开发Web应用程序,提供跨浏览器支持,并且可以完美地用于复杂的企业Web应用程序。

GWT开发环境设置

我们将开始为GWT应用程序设置开发环境。

Java

由于在将应用程序编译为JavaScript之前将用Java开发它们,因此您需要设置Java开发环境。

设置Java环境后,让我们为GWT配置环境。

GWT SDK

从GWT项目站点下载最新版本的GWT SDK。 http://www.gwtproject.org/download.html

gwt_112


转到上面的链接,然后单击上方屏幕中突出显示的“下载GWT SDK”。 然后将下载的GWT SDK解压缩到硬盘上的首选位置,其外观类似于以下屏幕截图。

1017


您需要安装GWT的eclipse插件才能在Eclipse上轻松开发GWT应用程序。 要安装GWT eclipse插件,请启动eclipse,然后转到“帮助”->“ Eclipse Marketplace”。

1113


在日食市场中搜索GWT。

1222


找出“用于Eclipse的Google插件”,其版本号应与您所使用的Eclipse的版本相匹配。 如果您使用的是Eclipse Kepler(eclipse 4.3),则需要查找“ Google Plugin for Eclipse 4.3”,然后单击“ Install”。

1243


接受许可证,然后单击“下一步”继续安装。

1272


下载和安装插件需要一些时间。

1293


在安装过程中,您将收到安全警告。 只需单击“确定”即可继续安装。

1303


插件安装完成后,请重新启动Eclipse。 重新启动Eclipse之后,您将看到GWT插件已添加到Eclipse工具栏中。

13113


而且,我们需要为计划在开发模式下运行GWT应用程序的浏览器安装扩展程序。 稍后我们将看到开发模式是什么,但是现在让我们为浏览器安装插件以完成开发环境的设置。 如果您在开发模式下启动应用程序而未安装插件,则浏览器将显示类似以下的消息。

在Internet Explorer中:

14413

在Chrome上:

14713


当您单击下载时,在Chrome上,您将被重定向到Chrome扩展程序页面,从中可以安装GWT Developer插件。

1464

点击“免费”按钮,将插件安装在Chrome浏览器上。

在IE上,单击“下载”按钮将下载设置的“ GWTDevPluginSetup.exe”,启动该程序将安装IE的GWT开发人员插件。

安装GWT开发人员插件后,重新启动浏览器。

不幸的是,最新版本的Mozilla Firefox不支持GWT开发人员插件。 因此,您不能在最新版本的Firefox上以开发模式工作,但是GWT已经提供了超级开发人员模式,该模式不需要在开发过程中安装任何插件。 因此,您可以在开发模式下以超级开发模式使用Firefox。

结论

我们已完成设置所需的开发环境,以便在GWT中开发应用程序。 我们可以开始创建GWT应用程序!

翻译自: https://www.javacodegeeks.com/2014/07/setting-up-development-environment-for-gwt.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue slot的使用

一、自定义组件中多个 slot 很久之前就想把表格封装了,奈何那时太过担心自己的技术。今天趁着劲头大致看了一下,把表格封装了,倒是比想象中的要简单很多 O(∩_∩)O 哈哈~ 暂且不考虑细节,大致封装表格要考虑的有:是否…

虫师Selenium2+Python_6、Selenium IDE

P155——创建测试用例录制脚本编辑脚本定位辅助P159——Selenium IDE 命令在浏览器中打开URL,可以接受相对路径和绝对路径两种形式openopen(url)单击链接、按钮、复选框和单选框click(elementLocator)模拟键盘的输入,向指定的input中输入值type(inputLoc…

flow 静态类型检查 js

1、flow介绍 https://ustbhuangyi.github.io/vue-analysis/prepare/flow.html#为什么用-flow 2、使用 (1)安装flow (2)项目目录的test.js文件 类型推断: /*flow*/function split(str) {return str.split( )}split(1…

页面监听,一段时间内不操作网页,就自动跳转到登录页

需求:用户在 5 分钟内没有操作网页,就自动跳转到登录页。 环境:jquery 项目,有公共的 js 文件 。 在所有页面都引用的 js 文件中添加下面代码: //判断用户是否在5分钟内未操作页面,如果没有操作&#xff…

页面刷新 vuex 数据重新被初始化

1、原因 vuex里用来存储的也只是一个全局变量,当页面刷新,该全局变量自然不存在了。 2、解决 使用localStorage存储一份 (1)storage.js /*** vuex localStorage plugin*/const IS_ALL 0export default function storagePlugi…

小程序 循环中有多个input,怎么获取每个input输入框的值

像上面这样的,使用form表单结构不太合理。官方文档中 wx.createSelectorQuery() 方法我这里总是打印不出值,所以只好通过输入框的事件来做判断,因为提交时,上面所有的输入框都是要有值的,也就意味着这些输入框都会使用…

了解JUnit的Runner架构

几周前,我开始创建一个小的JUnit Runner( Oleaster ),它允许您使用Jasmine方式在JUnit中编写单元测试。 我了解到,创建自定义JUnit Runners实际上非常简单。 在本文中,我想向您展示JUnit Runner在内部如何工…

琼瑶哀悼丈夫去世

转载于:https://www.cnblogs.com/gitwow/p/10982911.html

vue 简单实用的elementUI表格封装

在写这个表格组件之前,要了解 slot 插槽的使用。 目录 1.子组件:子组件调用父组件的方法 this.$parent.方法名 2.父组件使用 2.1 父组件(普通表格): 2.2 父组件(表格中的某一项数据需要修改&#xff0…

【学习】012 垃圾回收机制算法分析

垃圾回收机制概述 Java语言中一个显著的特点就是引入了垃圾回收机制,使c程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念&#xff0…

介绍JBoss BPM Suite安装程序

本周,我们想向您介绍JBoss BRMS和JBoss BPM Suite产品随附的一个鲜为人知的安装程序组件。 请注意,当前所有的演示项目都要求您下载JBoss BPM Suite可部署的eap zip产品文件和JBoss EAP 6.1.1 zip产品文件。 展望未来,我们将迁移所有项目&am…

自动装箱,拆箱和NoSuchMethodError

J2SE 5为Java编程语言引入了许多功能。 这些功能之一是自动装箱和拆箱 ,这是我几乎每天都没有考虑过的功能。 它通常很方便(尤其是与收藏夹一起使用时),但有时会导致一些令人讨厌的惊喜 ,即“ 怪异 ”和“ 疯狂” 。 在…

vue 动态显示三级路由

无需 vuex、本地存储实现动态显示三级路由。 目录 一、需求描述: 二、代码 2.1 路由配置 1. 我的一级菜单和二级菜单的路由配置的: 2. 三级菜单的路由配置: 3. 上面有几个变量和要注意的细节: 2.2 封装导航栏 2.3 封装面…

第二章 Vue快速入门-- 18 v-for中key的使用注意事项

注意:如果属性和方法还没定义直接使用的话&#xff0c;就会报 xxx is not defined 导致界面不能正常显示。我看视频教程里老师的可以直接使用&#xff0c;而且界面正常显示&#xff0c;可能是vue版本不同吗&#xff1f;还不清楚 1 <!DOCTYPE html>2 <html lang"…

vue 后端返回二进制流文件,前端如何实现下载?

目录 1. axios 请求二进制流文件导出文件 1.1 后台返回的二进制流&#xff1a; 1.2 使用&#xff1a; 1.3 需要注意以下几点&#xff1a; 2. 关于 arraybuffer 和 blob 2.1 ArrayBuffer 和 blob 2.2 区别 2.3 相互转换 3. 主要参考&#xff1a; 1. axios 请求二进制…

python量化之路:获取历史某一时刻沪深上市公司股票代码及上市时间

python量化之路&#xff1a;获取历史某一时刻沪深上市公司股票代码及上市时间 最近开始玩股票量化&#xff0c;由于想要做完整的股票回测&#xff0c;因此股票的上市和退市信息就必不可少。因为我们回测的时候必须要知道某一日期沪深股票的成分包含哪些对吧。所以我们要把沪深全…

《网页设计创意书》读后感

刚刚收到《网页设计创意书》&#xff0c;确实有点惊喜&#xff0c;开始以为是像之前审读的书一样是一叠叠的打印纸&#xff0c;没想到是一本成品书&#xff0c;拿到手上沉甸甸的&#xff0c;随便翻看了一下&#xff0c;没想到里面竟然还是全彩页印刷的&#xff0c;本书的第一感…

游戏AI –行为树简介

游戏AI是一个非常广泛的主题&#xff0c;尽管有很多资料&#xff0c;但我找不到能以较慢&#xff0c;更容易理解的速度缓慢介绍这些概念的东西。 本文将尝试解释如何基于行为树的概念来设计一个非常简单但可扩展的AI系统。 什么是AI&#xff1f; 人工智能是参与游戏的实体表现…

liteos错误处理(十一)

1. 概述 1.1 基本概念 错误处理指用户代码发生错误时&#xff0c;系统调用错误处理模块的接口函数&#xff0c;完成上报错误信息&#xff0c;并调用用户自己的钩子函数&#xff0c;进行特定的处理。 错误处理模块实现OS内部错误码记录功能。OS内部错误码无法通过接口返回&#…

js 变量提升与函数提升

规则&#xff1a; 函数的提升优先于变量提升。同名的函数会覆盖同名的函数与变量。同名的变量不会覆盖同名的函数。 示例代码1&#xff1a; <!DOCTYPE html><html lang"zh"><head><meta charset"UTF-8" /><meta name"vi…