===多个版本jdk发布java web start的问题===

webkkk 2005-05-16 09:19:03
如果客户端安装了多个版本的jdk,那么运行java web start的时候,找的是那个用来运行程序啊?
是否可以控制的呢??
...全文
434 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevech 2005-05-19
  • 打赏
  • 举报
回复
楼主存心耍人,大家记住这个人。
webkkk 2005-05-18
  • 打赏
  • 举报
回复
我不是不喜欢看,是看得有点费劲,呵呵,俺的英语一般~
请到http://community.csdn.net/Expert/topic/4016/4016033.xml?temp=.0761835拿分吧。
给错分,算我的问题,呵呵。再次对你的热心回答表示感谢!!
chongkai 2005-05-18
  • 打赏
  • 举报
回复
1.装了多个jdk,在jnlp中,我们指定<j2se version="1.3"/>,那么运行的时候先找那个jdk版本呢?你一般会怎么配置?

在resources下,可以有多个j2se标签,例如

<resources>
<j2se version="1.3">
<j2se version="1.4+"/>
</resources>

不同的版本是有优先顺序的,排在前面的优先级最高。

jnlp文件是由客户端机器上的jws来解析的,以上面的配置为例,jws会首先找1.3,如果找不到,就会退而求其次,找1.4,如果还找不到,因为那个加号,它会去找1.5。

只有某些特殊的应用必须在某个版本的jre下运行(高了或低了都不行),所以必须在jnlp文件中指定一个版本,而不能用加号。

对于一般的应用,只要知道应用所需的最低版本,就可以用加号(利用jre向后兼容性),这样适应性好一点。只要客户端机器上有你指定的版本或比你指定的版本高的任何版本,就无需下载新的jre了。

你不喜欢看英文文档,是吗?上面的文档已经说得很清楚了。
su27007 2005-05-18
  • 打赏
  • 举报
回复
学习一下!
webkkk 2005-05-18
  • 打赏
  • 举报
回复
多谢chongkai() 的回答,请到http://community.csdn.net/Expert/topic/4015/4015130.xml?temp=.7864344接分。
不过还有个问题你没有解答。

1.装了多个jdk,在jnlp中,我们指定<j2se version="1.3"/>,那么运行的时候先找那个jdk版本呢?你一般会怎么配置?
chongkai 2005-05-17
  • 打赏
  • 举报
回复
<j2se version="1.3+"/>后面的这个加号,请看我在楼上放的说明。

这里指定的版本号,是你的应用程序运行所必须的,例如,如果你在代码里用了1.4才增加的某些API,就不应该在jnlp中指定1.4以下的版本,而应该用1.4 或 1.4+

initial-heap-size一般不用配,它是描述内存需求的
webkkk 2005-05-17
  • 打赏
  • 举报
回复
还有<j2se version="1.3" initial-heap-size="64m"/>中initial-heap-size="64m"是不是可以不用配?
webkkk 2005-05-17
  • 打赏
  • 举报
回复
我查了一下注册表是"C:\Program Files\Java\j2re1.4.2_04\javaws\javaws.exe" "%1",但是这个版本的jdk是我最先安装的,后来才又安装的jdk1.5,jdk1.3。不过好像他们的java web start并没有装上,不知道为什么:(
再问一下
1.装了多个jdk,在jnlp中,我们指定<j2se version="1.3"/>,那么运行的时候先找那个jdk版本呢?你一般会怎么配置?
2.<j2se version="1.3"/>和<j2se version="1.3+"/>有啥区别呢?
呵呵,100分没有问题,毕竟搞懂问题才是最要重的:)
chongkai 2005-05-17
  • 打赏
  • 举报
回复
java web start自己也是有版本的,不过它的版本和发布程序没有关系。如果在机器上安装了多个版本的jws,那么默认使用哪个是由系统决定的。注册表中的

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command

的值指向某个版本的javaws.exe

至于到底这个注册表项指向哪个jws,我想应该是后安装的会覆盖先安装的吧。当然,这只是我的猜测。

不过这不重要,重要的是你的机器上有一个jws可用。

从发布的角度来看,你只能在jnlp文件中指定你的程序需要的jre,而无法要求客户端用什么版本的jws。这就象web server没办法要求用户使用什么浏览器一样。

我还差100分就可以升级了,如果你愿意,呵呵,,,
webkkk 2005-05-17
  • 打赏
  • 举报
回复
to chongkai()
谢谢你的回答,不过我还有几点疑问。希望你能够回答一下,可以另给分的,呵呵。

1)java web start本身有没有版本之说呢?如果有的话,版本和发布程序有没有关系?
2)我现在做实验,安装了jdk1.3,jdk1.4,jdk1.5,其中jdk1.4,jdk1.5里面有javaws.exe,启动起来界面不一样,这个是不是就是java web start的两个版本?可以指定用那个来运行程序吗?
如果可能的话,加我的msn:webkkk@263.net。
chongkai 2005-05-17
  • 打赏
  • 举报
回复
不是

java web start只是一种发布应用的方式,重要的是你在发布你的程序时,通过这个标签指定你的应用需要的jre版本

只要客户机上有java web start,它就会看你的jnlp文件,如果客户机上有jnlp文件中指定的jre版本,那么程序就可以下载运行。这个java web start本身的版本没什么关系。
webkkk 2005-05-17
  • 打赏
  • 举报
回复
to chongkai()
<j2se version = 指定jdk版本>不是java web start的版本吧?
webkkk 2005-05-17
  • 打赏
  • 举报
回复
注册表中那个只有1.4.2的,我安装的1.5都没有,这个是怎么回事?
webkkk 2005-05-16
  • 打赏
  • 举报
回复
一个很有意思的东东~
kaymo 2005-05-16
  • 打赏
  • 举报
回复
java web start是什么咚咚?
webkkk 2005-05-16
  • 打赏
  • 举报
回复
我的意思是,安装jdk的时候会提示你安装java web start,如果机器上装了jdk1.2 jdk1.3 jdk1.4 jdk1.5的话,那么就有4个java web start了,运行的时候他会找那个呢?
oyljerry 2005-05-16
  • 打赏
  • 举报
回复
根据注册表中设置的路径来找
chongkai 2005-05-16
  • 打赏
  • 举报
回复
用jnlp文件指定

<resources>
<j2se />
</resources>

The j2se element specifies what Java 2 SE Runtime Environment (JRE) versions an application is supported on, as well as standard parameters to the Java Virtual Machine. If several JREs can are specified, this indicates a prioritized list of the supported JREs, with the most preferred version first. For example:

<j2se version="1.3" initial-heap-size="64m"/>
<j2se version="1.4+"/>

The version attribute refers, by default, to a platform (specification) version of the Java 2 platform. Currently defined platform version are 1.2, 1.3, and 1.4. (A platform version may optionally contain a micro version number; e.g., 1.4.2.)

Exact product versions (implementation versions) may also be specified—e.g., 1.3.1_01 or 1.4.2-beta by Sun Microsystems, Inc.—by including the href attribute. E.g.,

<j2se version="1.3.1_01" href="http://java.sun.com/products/autodl/j2se"/

or

<j2se version="1.4.2-beta" href="http://java.sun.com/products/autodl/j2se"/>

If a platform version is specified (i.e., no href attribute is provided), Java Web Start will not consider an installed non-FCS (i.e., milestone) JRE as a match. E.g., a request of the form

<j2se version="1.4+">

would not consider an installed 1.4.1-ea or 1.4.2-beta JRE as a match for the request. Starting with 1.3.0, a JRE from Sun Microsystems, Inc., is by convention a non-FCS (milestone) JRE if there is a dash (-) in the version string.



stevech 2005-05-16
  • 打赏
  • 举报
回复
在系统中默认的一个。
在Windows中默认的WebStart可在注册表中修改,位置是:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start中的CurrentVersion。(win2k)
crazyzl 2005-05-16
  • 打赏
  • 举报
回复
安装路径来找的第一个是哪个阿?在哪里可以重新设定阿!?
加载更多回复(9)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧