本教程针对 Eclipse 3.3 (3.2和3.3是有区别的)
使用这个题目,虽然和下面文章题目有些相似,是因为我想不出更好的名字了,所以索性不想了。
实现 JavaWebStart 发布 RCP 程序实际是非常简单的,但对于我来说这个过程是比较漫长的,前前后后研究了N次,也不是我笨,本人自认为还算聪明,悟性较高,关键是为啥呢?!记性不好呗!!
自我检讨一下,我这人比较懒,不喜欢写日志,所以在第一次研究成功之后,就把源码什么的放在一边了,又接着研究其它东西了,没有记录起来,等到下次用的时候,都忘了,正所谓“好记性不如烂笔头!”,我下定决心以后经常写写“博博”什么的!!好了,言归正传!
第一步 学习别人的
为啥让你先看这个呢?
- 还是得说我这人比较懒。
- 人家的内容我在复制粘贴到我的文章不就成了剽窃了,所以我不干。
- 人家的文章写的是很不错,但是针对的是 Eclipse 3.2。
第二步 完善自己的
1. 使用 keytool 命令生成数字签名:
C:\j2sdk1.4.2_16\bin\keytool -genkey -alias Foreworld.Net -keypass 123456 -storepass 123456 -keystore Foreworld.Net
2. 打包并进行数字签名:
这里的区别是需要用 Eclipse 的命令参数方式进行打包,否则打包不成功。
解决方法:修改 Eclipse 3.3 的启动方式,创建一个 Eclipse 3.3 的快捷方式,在目标中输入:
D:\MyEclipse-6.0M1\eclipse\eclipse.exe -vm "C:\j2sdk1.4.2_16\bin\javaw.exe"
接下来,双击快捷方式,按照教程开始打包。(在此必须注意中文文件名是不能数字签名的,如果项目中有文文件名的必须改成英文,否则会在后面的运行过程中出现无法验证数字签名的问题)
3. 修改主JNLP文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8081/jws/" href="rss2.jnlp">
<information>
<title>RSS聚合浏览器 Ver1.0</title>
<vendor>黄鑫 foreworld@vip.qq.com</vendor>
<description>RSS聚合浏览器 Ver1.0</description>
<offline-allowed></offline-allowed>
<homepage href="http://www.foreworld.net/" />
<icon href="icon16x16.gif" />
<icon href="mylogo.gif" kind="splash" />
</information>
<security>
<!-- 设置此RCP应用对文件系统进行完全的访问权限 -->
<all-permissions></all-permissions>
</security>
<!-- 设置此应用程序的启动类,RCP应用总是由此类来引导启动 -->
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
<!-- 这里可以设置应用程序启动时所要传递的参数,与eclipse.exe所使用的参数类似 -->
<argument>-nosplash</argument>
</application-desc>
<resources>
<!-- 指定此应用程序所使用的JRE版本 -->
<j2se version="1.4+" />
<!-- 指定启动类所在的Jar包,发布RCP应用时总是要下载此Jar包 -->
<jar href="plugins/org.eclipse.equinox.launcher_1.0.0.v20070606.jar" />
<!-- 这里设置扩展配置文件的地址,对于JWS管理器来说,一个扩展配置文件即对应一个库,主应用程序可以使用多个库来完成特定的功能。扩展配置文件也是可以再包含扩展配置文件的,即可以递归使用 -->
<extension name="Foreworld RSS2 Feature" href="features/net.foreworld.rss2.feature_1.0.0.v200905231119.jnlp" />
<!-- 设置RCP应用启动时所要运行的产品Id,与config.ini中的配置相同 -->
<property name="osgi.splashPath" value="platform:/base/plugins/net.foreworld.rss2" />
<property name="eclipse.product" value="net.foreworld.rss2.product" />
<property name="osgi.bundles" value="org.eclipse.equinox.common@2:start,org.eclipse.update.configurator@3:start,org.eclipse.core.runtime@start" />
<property name="osgi.bundles.defaultStartLevel" value="4" />
<!-- 这里设置RCP应用程序的工作空间目录,与普通RCP应用中config.ini的配置项类似 -->
<property name="osgi.instance.area" value="@user.home/RSS聚合浏览器 Ver1.0" />
<!-- 设置RCP应用的配置文件目录 -->
<property name="osgi.configuration.area" value="@user.home/RSS聚合浏览器 Ver1.0" />
</resources>
</jnlp>
其中要修改的地方除了 codebase 路径外,还需修改 net.foreworld.rss2.feature_1.0.0.v200905231119.jnlp,将其修改为打包生成的 features 目录下的 jnlp 文件名。
4. 配置好你的 tomcat ,直接点击主 jnlp 文件或者在地址栏里输入 jnlp 路径,就可以运行了。
其他闲话不说,完毕收工。
最新评论