2011-10-10 126 views
2

我有一个Java applet,设计在32位JDK(1.5)下。在新MacOS(10.7)上部署它时,它运行不正确 - 因为该系统默认首选64位JRE(有两种供选择,32和64位)。如果首选顺序先改为32位,那么一切正常 - 但这不是一个解决方案,因为更改客户端计算机上的设置不方便。对于独立的应用程序包,它可以通过info.plist中的适当设置修复,只需指定应用程序体系结构即可。强制Java applet运行在32位而不是64位JRE

那么,有没有办法在启动applet时做出同样的事情 - 指定i386体系结构,强制浏览器运行32位JRE,强制JVM在32位或其他任何方面工作?

现在我只找到了如何为applet指定JRE版本/系列,这没有帮助。我正尝试使用以下代码启动小应用程序:

<object 
classid="clsid:CAFEEFAC-0015-0000-FFFF-ABCDEFFEDCBA" 
width="740" height="400" 
codetype = "application/x-java-applet;version=1.5" 
> 
<param name="code" value = "ca/lcsi/Program/App/LogoFrameApplet.class"> 
<param name="archive" value="webplayer.jar"> 
<param name="project" value="testpath.tsfp"> 
<param name="lang" value="en"> 
    <embed 
    type="application/x-java-applet;version=1.5" 
    code="ca/lcsi/Program/App/LogoFrameApplet.class" 
    archive = "webplayer.jar" 
    project = "testpath.tsfp" 
    lang = "en" 
    width="740" height="400" 
    > 
</object> 

希望得到建议!

+0

2问题:为什么它运行不正确,为什么你认为它与JRE有关? –

+1

1)为什么?我不知道。据我所知,程序不使用任何本地库。 2)正如我所说的,如果我在客户机上选择另一个(32位)JRE作为首选,那么它运行良好。 –

+0

你能发布一些关于错误的细节,以便我们可以帮助你吗? –

回答

1

所以,如果有人感兴趣,问题就解决了。

对于一个小程序,这是不可能的。可以使用Java Web Start以32位模式启动JVM。但是随着当前(Java SE 6)的实现,由于配置文件中绝对的'codebase'字段,JWS不如applet方便,这限制了applet /应用程序的部署。

看来这个问题出现在JRE实现中 - 我的程序真的具有非常有限的系统特定部分,并且没有依赖于位的部分。将继续测试,为bug本地化问题报告:)

+0

你如何在JWS中做到这一点? – KJW

+0

对于整体JWS信息,您可以看到官方文档:http://docs.oracle.com/javase/tutorial/deployment/webstart/deploying.html如何在32位启动JVM:write'java-vm-args =在jnlp文件中标记中的“-d32”'':''' –

相关问题