ava IDE 工具提供了大量的方法来根据你的独特需求和偏好创建一个编程环境。
? 来源:linux.cn ? 作者:Daniel Oh ? 译者:Xingyu.Wang ?
(本文字数:2583,阅读时长大约:4 分钟)
通过简化程序员的工作, Java 框架可以使他们的生活更加轻松。这些框架是为了在各种服务器环境上运行各种应用程序而设计开发的;这包括解析注解、扫描描述符、加载配置以及在 Java 虚拟机(JVM)上启动实际的服务等方面的动态行为。控制这么多的任务需要更多的代码,这就很难降低内存占用、加快新应用的启动时间。无论如何,据 TIOBE 指数 ,在当今使用的编程语言中 Java 一直排名前三,拥有着 700 万到 1000 万开发者的社区。
有这么多用 Java 编写的代码,这意味着有一些很好的集成开发环境(IDE)可供选择,可以为开发人员提供有效地编写、整理、测试和运行 Java 应用程序所需的所有工具。
下面,我将按字母顺序介绍五个我最喜欢的用于编写 Java 的开源 IDE 工具,以及如何配置它们的基本功能。
BlueJ 为 Java 初学者提供了一个集成的教育性 Java 开发环境。它也可以使用 Java 开发工具包(JDK)开发小型软件。各种版本和操作系统的安装方式都可以在 这里 找到。
在笔记本电脑上安装 BlueJ IDE 后,启动一个新项目,点击 项目(Project)菜单中的 新项目(New Project),然后从创建一个 新类(New Class)开始编写 Java 代码。生成的示例方法和骨架代码如下所示:
BlueJ IDE screenshot
BlueJ 不仅为学校的 Java 编程课的教学提供了一个交互式的图形用户界面(GUI),而且可以让开发人员在不编译源代码的情况下调用函数(即对象、方法、参数)。
Eclipse 是桌面计算机上最著名的 Java IDE 之一,它支持 C/C++、JavaScript 和 PHP 等多种编程语言。它还允许开发者从 Eclipse 市场中的添加无穷无尽的扩展,以获得更多的开发便利。 Eclipse 基金会 提供了一个名为 Eclipse Che 的 Web IDE,供 DevOps 团队在多个云平台上用托管的工作空间创建出一个敏捷软件开发环境。
可以在这里下载 ;然后你可以创建一个新的项目或从本地目录导入一个现有的项目。在 本文 中找到更多 Java 开发技巧。
Eclipse IDE screenshot
IntelliJ IDEA CE(社区版) 是 IntelliJ IDEA 的开源版本,为 Java、Groovy、Kotlin、Rust、Scala 等多种编程语言提供了 IDE。IntelliJ IDEA CE 在有经验的开发人员中也非常受欢迎,可以用它来对现有源码进行重构、代码检查、使用 JUnit 或 TestNG 构建测试用例,以及使用 Maven 或 Ant 构建代码。可在 这里 下载它。
IntelliJ IDEA CE 带有一些独特的功能;我特别喜欢它的 API 测试器。例如,如果你用 Java 框架实现了一个 REST API,IntelliJ IDEA CE 允许你通过 Swing GUI 设计器来测试 API 的功能。
IntelliJ IDEA screenshot
IntelliJ IDEA CE 是开源的,但其背后的公司也提供了一个商业的终极版。可以在 这里 找到社区版和终极版之间的更多差异。
NetBeans IDE 是一个 Java 的集成开发环境,它允许开发人员利用 HTML5、JavaScript 和 CSS 等支持的 Web 技术为独立、移动和网络架构制作模块化应用程序。NetBeans IDE 允许开发人员就如何高效管理项目、工具和数据设置多个视图,并帮助他们在新开发人员加入项目时使用 Git 集成进行软件协作开发。
这里 下载的二进制文件支持 Windows、macOS、Linux 等多个平台。在本地环境中安装了 IDE 工具后,新建项目向导可以帮助你创建一个新项目。例如,向导会生成骨架代码(有部分需要填写,如 // TODO 代码应用逻辑在此),然后你可以添加自己的应用代码。
VSCodium 是一个轻量级、自由的源代码编辑器,允许开发者在 Windows、macOS、Linux 等各种操作系统平台上安装,是基于 Visual Studio Code 的开源替代品。其也是为支持包括 Java、C++、C#、PHP、Go、Python、.NET 在内的多种编程语言的丰富生态系统而设计开发的。Visual Studio Code 默认提供了调试、智能代码完成、语法高亮和代码重构功能,以提高开发的代码质量。
在其 资源库 中有很多下载项。当你运行 Visual Studio Code 时,你可以通过点击左侧活动栏中的“扩展”图标或按下 Ctrl+Shift+X 键来添加新的功能和主题。例如,当你在搜索框中输入 “quarkus” 时,就会出现 Visual Studio Code 的 Quarkus 工具,该扩展允许你 在 VS Code 中使用 Quarkus 编写 Java :
VSCodium IDE screenshot
Java 作为最广泛使用的编程语言和环境之一,这五种只是 Java 开发者可以使用的各种开源 IDE 工具的一小部分。可能很难知道哪一个是正确的选择。和以往一样,这取决于你的具体需求和目标 —— 你想实现什么样的工作负载(Web、移动应用、消息传递、数据交易),以及你将使用 IDE 扩展功能部署什么样的运行时(本地、云、Kubernetes、无服务器)。虽然丰富的选择可能会让人不知所措,但这也意味着你可能可以找到一个适合你的特殊情况和偏好的选择。
你有喜欢的开源 Java IDE 吗?请在评论中分享吧。
via: opensource.com
作者: Daniel Oh 选题: lujun9972 译者: wxy 校对: wxy
本文由 LCTT 原创编译, Linux中国 荣誉推出
知道关于HTML5开发工具大家了解多少,如今参加HTML5培训的小伙伴已经知道先看该机构的HTML5学习路线图了解大致内容了,但是对于HTML5开发工具的学习与使用小伙伴又了解多少呢?本篇文章扣丁学堂小编就给读者分享一下HTML5培训必备的HTML5开发工具。
扣丁学堂HTML5培训必备的HTML5开发工具:
1、hbuilder
hbuilder是DCloud推出的一款支持HTML5的Web开发IDE。快,是HBuilder的最大优势,通过完整的语法提示和代码输入法、代码块等,大幅提升HTML、js、css的开发效率。同时,它还包括最全面的语法库和浏览器兼容性数据。
2、代码编辑器(Notepad++)
Notepad++ 程序员必备的文本编辑器,软件小巧高效,支持27种编程语言,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS 等,推荐各位下载使用。Notepad++ 可完美地取代微软的记事本。
3、Dreamweaver CS6
Dreamweaver CS6 是世界顶级软件厂商Adobe推出的一套拥有可视化编辑界面,用于制作并编辑网站和移动应用程序的网页设计软件。由于它支持代码、拆分、设计、实时视图等多种方式来创作、编写和修改网页,对于初级人员,你可以无需编写任何代码就能快速创建Web页面。其成熟的代码编辑工具更适用于Web开发高级人员的创作!
CS6新版本使用了自适应网格版面创建页面,在发布前使用多屏幕预览审阅设计,可大大提高工作效率。改善的 FTP 性能,更高效地传输大型文件。“实时视图”和“多屏幕预览”面板可呈现 HTML5 代码,更能够检查自己的工作。
4、高级文本编辑器(Sublime Text)
Sublime Text很赞的代码编辑器,界面设置非常人性化,左边是代码缩略图,右边是代码区域,你可以在左边的代码缩略图区域轻松定位程序代码的位置,高亮色彩功能非常方便编程工作。
5、MyEclipse
MyEclipse,是十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
6、EditPlus(文本编辑器)
EditPlus是一款为Internet准备的、运行于Windows下的32位文本、html编辑器, 同时也是程序员们非常喜爱的编辑器。你完全可以用它代替Windows笔记本,它也为许多网页高手和程序员提供便利。
7、Adobe Edge
目前还处于预览阶段的Adobe Edge 是用HTML5、CSS、Java开发动态互动内容的设计工具。内容可以同时兼容移动设备和桌面电脑。Edge的一个重要功能是Web工具包界面,方便确保页面在不同浏览器中的架构一致性,此外Edge还将整合TypeKit这样的字体服务。
动画和图形可以添加到HTML元素中,程序也能通过Edge自身的代码片段库或者Java代码进行扩展。动画可以在独立的时间线上进行嵌套,还能实现互动功能。符合可以服用并通过API和代码片段控制。通过Edge设计的内容可以兼容iOS和Android设备,也可以运行在火狐、Chrome、Safari和IE9等主流浏览器。
8、Adobe Dreamweaver CS6
Adobe Dreamweaver CS6作为一个web设计软件,提供了对HTML网站和移动程序的可视化编辑界面。其Fluid Grid 排版系统整合CSS样式表功能,提供自适应版面的跨平台兼容性。开发者可以完全实现web设计的可视化操作,无需为代码所困。
用户不但还能在Live View中预览,还提供多屏幕预览功能。开发者可以通过MultiScreen预览面板查看HTML5内容的渲染效果。Live View通过WebKit渲染引擎支持HTML5。
9、DevExtreme性能最优的跨平台移动应用开发框架
DevExtreme是专为你的移动世界精心准备的,一个跨平台开发的HTML5/JS框架,可以构建iOS、Android、Tizen和Windows Phone 8应用程序,是Visual Studio开发人员开发跨平台移动产品的优选工具。
10、Edge Animate CCEdge Animate CC可以让你很轻松的为现代Web设计交互式和生动地HTML内容。
11、mobl
mobl 是一个新的开源的编程语言,主要用于加速手机应用的开发,mobl可方便构建手机Web应用程序,包括 iOS、Android 和其他支持HTML5 技术的手机。
Mobl使用一种与Java非常类似的脚本语言实现了静态类型的推断语言。该语言拥有以下顶级结构: 实体(entities)、类型(types)、函数(functions)、控件(controls)、屏幕(screens)、样式(styles )和设备(services)。实体是在本地存储中持久化的数据元素,而类型是一种供我们使用的不稳定的数据。函数与那些定义在Java以及能够调用Java代码的语言中的函数类似等。
12、Lungo 最佳HTML5移动框架
Lungo是一款基于HTML5的开发框架,专为想要设计、构建和共享跨设备应用的开发者而准备。支持开放的Web标准,如HTML5、CSS3和Java;支持手机、电视以及桌面设备。拥有强大的Java API:开发webAPP应用有很多种方式,而不是一味的优化。Lungo提供了一个强大的API,这样你可以完全掌控自己的webAPP应用程序。
以上就是小编简单为大家介绍的扣丁学堂HTML5培训必备的HTML5开发工具,希望对HTML5开发技术感兴趣的小伙伴多多了解。对HTML5开发技术感兴趣的小伙伴可以参加扣丁学堂的HTML5培训,扣丁学堂不仅有专业的老师和与时俱进的课程体系,还有大量的HTML5视频教程供学员观看学习,想要HTML5视频教程的小伙伴快联系扣丁学堂的咨询老师领取吧。扣丁学堂H5技术交流群:559883758。
【关注微信公众号获取更多学习资料】
Adobe公司出品的多媒体处理软件产品线较多,涵盖了音视频编辑、图像处理、平面设计、影视后期等领域。为了扩展软件的功能,Adobe公司为开发者提供了两种方式来增加软件的功能:分别是插件(Plugin)和扩展(Extension)。去年利用官方提供的SDK开发过两款Premiere插件,分别用于导入自定义格式的多媒体文件和视频流预览。近来体验了一下Adobe Extension的开发。
Adobe Plugin一般用于提供更靠近底层的功能。官方出于效率的考虑,提供的插件SDK是基于C++语言的。而Adobe Extension则偏向与提供上层应用的扩展,在Adobe CS时代是采用的Flash形式实现的。在Adobe CC时代则提供了HTML5实现,这使得开发者们可以接口HTML5, CSS3, Javascript甚至是NodeJS来开发。因为Adobe在PremierePro里面嵌入了CEF,可以高效的解析渲染HTML5、运行Nodejs程序。而Nodejs则能实现系统功能的调用,简直不要太叼!在这篇文章中,我大概总结了一下使用HTML5来开发一款Adobe扩展的心路历程。
我们要做的一款扩展非常简单,如下图所示:
这是国外一家知名的视频素材交易网站Pond5开发的一款PremierePro扩展,它可以让用户在Pr中登陆网站、下载预览素材、购买高清素材、自动导入视频或自动替换视频。使得用户无需额外打开浏览器登陆网站操作,极大的提高了用户的使用体验。类似的还有shutterstock开发的插件:
Adobe官方基于eclipse推出了一个用于开发Adobe Html5 Extension的IDE。因此,我们按如下流程先来配置下开发环境:
下载 Eclipse,最好是3.6或更高版本,以及Extension Builder
安装Adobe Premiere Pro CC 2014/2015.
配置elicpse的“target application”和"Service Manager"
打开调试模式:在注册表中添加 'PlayerDebugMode'字段
配置结束,到这里可以利用eclipse生成extension的模板工程了。生成的模板工程非常简单,面板里面只有一个默认的按钮:
manifest.xml文件
Adobe Html5 Extension的开发,最重要的一个文件就是manifest.xml。这个文件描述了这个extension的基本信息,以便Adobe宿主程序能够正常识别加载。其大体内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ExtensionManifest ExtensionBundleId="com.example.helloworld" ExtensionBundleName="Hello world" ExtensionBundleVersion="1.0" Version="4.0">
<ExtensionList>
<Extension Id="com.example.helloworld.extension" Version="1.0"/>
</ExtensionList>
<ExecutionEnvironment>
<HostList>
<Host Name="PHXS" Version="[14.0,14.9]"/>
</HostList>
<LocaleList>
<Locale Code="All"/>
</LocaleList>
<RequiredRuntimeList>
<RequiredRuntime Name="CSXS" Version="4.0"/>
</RequiredRuntimeList>
</ExecutionEnvironment>
<DispatchInfoList>
<Extension Id="com.example.helloworld.extension">
<DispatchInfo>
<Resources>
<MainPath>./index.html</MainPath>
</Resources>
<UI>
<Type>Panel</Type>
<Menu>Hello world</Menu>
<Geometry>
<Size>
<Height>400</Height>
<Width>400</Width>
</Size>
</Geometry>
</UI>
</DispatchInfo>
</Extension>
</DispatchInfoList>
</ExtensionManifest>
其中,BundleName, BundleId, BundleVersion由开发者来定,一般就是按照正常的版本迭代来确定。最重要的是HostList和RequiredRuntimeList这两个标签的内容。HostList里面确定了这个extension支持哪些宿主程序(如PremierePro, After Effects等等)。下面的代码指明了多个宿主程序都可以加载:
<HostList>
<Host Name="PPRO" Version="[7.0, 10.0]" />
<Host Name="PHSP" Version="[14.0, 16.0]" />
<Host Name="PHXS" Version="[14.0, 14.9]" />
</HostList>
这里只支持Photoshop Extended,其Host ID对应为PHXS,其他宿主程序的Host ID及版本如下:
注意到Version使用了一个方括号的形式[14.0, 14.9],这表明这个extension支持版本14.0-14.9的Photoshop Extended ,高于这个版本或者低于这个版本的Photoshop Extended是不会加载这个extension的。但是,如果要指定某版本以上的所有版本都支持该如何指定?比如要支持2014以上的PremierePro CC,如何指定这个Version呢?只写上最低版本号即可:
<HostList>
<Host Name="PPRO" Version="7.0" />
<Host Name="PHSP" Version="14.0" />
<Host Name="PHXS" Version="14.0" />
<Host Name="IDSN" Version="9.0"/>
<Host Name="ILST" Version="17.0" />
</HostList>
另外,就是RequiredRuntimeList这个标签了。这个标签指定了运行时的CEP版本。所谓的CEP是Common Extensibility Platform的简称,它提供了一个核心服务集,便于开发者执行Extendscript代码、探查宿主程序的环境变量、处理extension与host之间发送的事件。在之前这个服务集叫做 Creative Suite Extensible Services,简称CSXS。因此,在一些配置文件中仍然可以看到CSXS这个缩写。CEP最初版本为4.x,发展至今已经有5个大版本了,最新的版本为8.x,支持最新的Adobe CC 2018宿主程序。
如上图,如果我们要支持初代CC版本的宿主程序的话,RequiredRuntime的Version就要设置为4.0。否则是无法正常加载extension的。此外,如果想在扩展中访问文件系统的话,还得指定额外一些参数:
<CEFCommandLine>
<Parameter>--allow-file-access</Parameter>
<Parameter>--allow-file-access-from-files</Parameter>
<Parameter>--enable-nodejs</Parameter>
</CEFCommandLine>
禁用签名验证
我们在开发的时候,需要随时调整extension的代码。而Adobe宿主程序对于那些没有签名的extension,是置之不理不会加载的。因此,我们需要把调试模式打开,这样开发的时候就不必对扩展进行签名了:
在mac上,打开~/Library/Preferences/com.adobe.CSXS.6.plist这个文件并增加一行,键名为PlayerDebugMode,类型为 "String",值设置为"1".
在Windows上, 打开注册表项:HKEY_CURRENT_USER/Software/Adobe/CSXS.6,增加一项名为PlayerDebugMode, 类型为 "String", 值为 "1"的键值对.
注意:如果宿主程序的版本不同,对应的文件可能也不同。比如CC2017,就要把上面对应部分改成 "CSXS.7"
chrome调试
chrome调试工具有助于观察extension的输出、探查extension的DOM结构,对于调试起着非常大的帮助。启用chrome调试工具也很简单,在extension文件夹的根目录创建一个名为.debug的文件,写入下述内容:
<?xml version="1.0" encoding="UTF-8"?>
<ExtensionList>
<Extension Id="com.pond5.marketplace">
<HostList>
<Host Name="PHXS" Port="8000"/>
<Host Name="IDSN" Port="8001"/>
<Host Name="AICY" Port="8002"/>
<Host Name="ILST" Port="8003"/>
<Host Name="PPRO" Port="8004"/>
<Host Name="PRLD" Port="8005"/>
<Host Name="FLPR" Port="8006"/>
<Host Name="AUDT" Port="8007"/>
</HostList>
</Extension>
</ExtensionList>
这个列表说明了调试不同的宿主程序时用的端口不一样。以Pond5为例,其.debug文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ExtensionList>
<Extension Id="com.pond5.ppro">
<HostList>
<!-- Premiere -->
<Host Name="PPRO" Port="8089" />
</HostList>
</Extension>
</ExtensionList>
指定调试Premiere的extension时,端口为8089。如下图所示:
CEP缓存清理
开发的时候,有可能需要禁止CEF对web内容缓存,可以直接手动删除掉如下位置中extension对应的文件夹:
Windows: C:\Users\USERNAME\AppData\Local\Temp\cep_cache\
Mac: /Users/USERNAME/Library/Logs/CSXS/cep_cache
当然,也有Adobe的开发者说指定CEF参数<Parameter>--disable-application-cache</Parameter>来禁用CEF缓存,不过我尝试过好像不起作用。
Extension文件夹
Extension存放的位置有分两种,系统范围的和用户个人的。系统范围安装Extension的话,Extension文件会存放在如下位置:
On Mac,: /Library/Application Support/Adobe/CEP/extensions
On Windows: C:\Program Files (x86)\Common Files\Adobe\CEP\extensions
这样,当前系统的所有用户都可以加载这个Extension了。也可以仅仅安装给当前用户使用,其位置如下:
On Mac: ~/Library/Application Support/Adobe/CEP/extensions
On Windows: C:\AppData\Roaming\Adobe\CEP\extensions
签名打包
发布Extension的时候,需要对整个包进行签名。这里需要用到ZXPSignCmd这个工具,在官方网站上可以下载。首先,要进行签名我们需要一个数字证书。这个证书我们可以从第三方证书签发机构购买,这需要一定的经费。也可以做一个自签名的证书,对extension进行签名。我们就按照后面一种方式来走个流程:
./ZXPSignCmd -selfSignedCert <countryCode> <stateOrProvince> <organization> <commonName> <password> <outputPath.p12>
./ZXPSignCmd -selfSignedCert US Washington myOrganization "John Smith" myPassword myCertificate.p12
这样会在当前目录下生成一个自签名证书,然后我们可以用这个证书签名打包了:
./ZXPSignCmd -sign <inputDirectory> <outputZxp> <p12> <p12Password>
./ZXPSignCmd -sign HelloWorld/ HelloWorld.zxp myCertificate.p12 myPassword
ZXPSignCmd工具签名时会在extension目录下生成一个META-INF文件,里面存放这次签名的信息。然后,工具会将整个目录打包压缩成一个*.zxp文件。这就是我们最终需要发布的扩展文件了。^_^
Pond5和Shutterstock的套路分析
通过仔细分析Pond5和shutterstock的实现,我们可以总结下这种类型的扩展的一般执行逻辑:
(1)在宿主程序中打开extension面板,通过”窗口-扩展“可以找到已加载的扩展
(2)Extension的脚本会分析用户是否是第一次使用。如果是第一次,让用户选择视频素材要保存的位置,这个一般通过弹出对话框实现。用户选择的位置信息,一般通过xml文件持久化存在用户家目录中。用户如果不是第一次使用扩展的话,就直接加载家目录中的xml文件解析了。
(3)用户点击了某个视频素材,开启下载。这个过程一般可通过nodejs实现。不过,要设置好下载回调函数。
(4)下载成功后执行回调函数,把下载好的视频文件导入到宿主程序中。这个步骤则是调用extendscript脚本实现。具体脚本编写可以参考这里。
参考这个套路,实现了类似Pond5和Shutterstock的Adobe Extension:
http://labs.adobe.com/technologies/extensionbuilder3/
http://davidderaedt.github.io/CC-Extension-Builder-for-Brackets/
https://www.adobe.com/exchange/em_download/
https://github.com/Adobe-CEP/Samples
https://forums.adobe.com/thread/2010424
https://forums.adobe.com/message/8133214#8133214
https://blogs.adobe.com/cssdk/2014/06/adobe-extension-builder-and-creative-cloud-2014.html
http://www.adobe.com/devnet/creativesuite/samples.html
http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/cs-extension-builder/pdfs/CC_Extension_SDK.pdf
http://www.adobe.com/devnet/creativesuite/articles/a-short-guide-to-HTML5-extensions.html
http://www.adobe.com/devnet/creativesuite/articles/hybrid-extensions.html
http://labs.adobe.com/downloads/extensionbuilder3.html
作者:24K纯开源
出处:http://www.cnblogs.com/csuftzzk/
*请认真填写需求信息,我们会在24小时内与您取得联系。