2011-04-11 38 views
1

我正在開發Java小程序,最近我嘗試在不屬於我的機器上演示小程序。然而,我無法讓小程序在該機器上運行,因爲它在安全例外情況下保持失敗。該小程序可在http://www.cs.rpi.edu/~madiav/launch.html找到。開發機器以外的機器上的小程序failng

很遺憾,我無法訪問這臺機器來收集堆棧跟蹤或Java控制檯的輸出。但是我注意到我的計算機上的Java控制檯吐出了很多關於沒有找到的類的消息,但是這個appet仍然按預期運行,所以我忽略了它們。

從Java控制檯的整個輸出可以在這裏找到http://pastebin.com/DjFAJgVW 類未找到類型的例子線

basic: JNLP2ClassLoader.findClass: RhythmWheels.Open: try again .. 

有誰知道我是如何擺脫這些和/或這是否是什麼導致執行失敗在其他機器上?

+0

你寫了這個小程序嗎?或者它是第三方的東西?在appletviewer中在桌面上運行的小程序可以避開各種不會在瀏覽器中運行的東西,包括文件I/O和任意網絡連接。 – 2011-04-11 04:42:19

+0

我開發了applet,運行良好,當我使用chrome和Firefox從我的桌面上運行它時,它運行良好,但它無法在我的同事機器上運行。 – 2011-04-11 04:45:20

+0

更快得到更好的幫助1)發佈[SSCCE](http://pscode.org/sscce.html)的代碼(我沒有關注該鏈接)。 2)**一個applet的URL **很少會跟隨applet鏈接,特別是對於一個可信的或大的applet,但是值得一試。順便說一句 - 是數碼簽名的小程序嗎? – 2011-04-11 04:49:55

回答

1

通常可以通過添加可以減小消息的 '未找到類' ..

<param name='codebase_lookup' value='false'> 

..to的applet元件。至少如果這些課程是Jar'd。

有關詳細信息,請參閱Special Applet Attributes


注:這是在HTML一個applet paramJNLP文件一個param


讓你的朋友報告java.version & java.vendor properties


Applets只能由Sun的1.6.0_10 +的JNLP配置。即使這樣,瀏覽器也需要專門配置爲在Linux上使用「下一代」插件。最好(至少在測試時)將一個完全不同的applet放在HTML中的applet元素中(與JNLP中指定的一樣),以幫助確定是否獲得'下一代'。/plug-in2'行爲。


編輯2:

測試:當信任對話框拒絕:

exception: exit(-1). 
ExitException[ 4]java.lang.RuntimeException: exit(-1) 
    at com.sun.javaws.Main.systemExit(Unknown Source) 
    at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source) 
    at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source) 
    at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source) 
    at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source) 
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Exception: ExitException[ 4]java.lang.RuntimeException: exit(-1) 

來自哪裏的ExitException?我在追蹤中沒有看到任何非Sun代碼的提及,但我並不熟悉RuntimeException

確保框架不會嘗試呼叫JFrame.EXIT_ON_CLOSE。甚至連一個可信的小程序都不允許結束當前的VM實例。我想到了如何「繞過」一次並嘗試它 - 看到整個瀏覽器崩潰。)

測試:當信任對話框判決同意:

小程序運行併產生一個按鈕彈出自由浮動「混合器」。按鈕可以發出聲音,但無法從中找出它。


爲什麼這個applet需要信任?


它可能是更好的分配與applet和有JNLP直接啓動JFrame

由於您似乎期望最終用戶擁有1.6.0(_10 +),所以在pack()被調用後,在JFrame上調用setMinimumSize()也是值得的。

+0

謝謝你的嘗試。我在我的JNLP文件中添加了相應的屬性,這些消息並沒有消失。我想這些消息必須處理另一個問題。 – 2011-04-11 05:04:51

+0

'@Varun Madiath'根據最新信息查看我對答案的編輯。 – 2011-04-11 05:29:35

0

但是我無法獲得在該機器上運行的小程序,因爲它在安全例外情況下保持失敗。

我得到一個證書警告,但後來運行。也許Java版本問題?我有一個相當新的1.6版本。

+0

我也運行Java 1.6。但是,這可能是。考慮到這項工作,我從未想過認爲我的同事會使用舊版本,但我會研究這一點。 – 2011-04-11 05:06:04

相關問題