2011-10-10 121 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」'':''' –

相關問題