1

私は Java アプレットを開発していますが、最近、自分のものではないマシンでアプレットのデモを試みました。しかし、セキュリティ例外で失敗し続けたため、そのマシンでアプレットを実行することができませんでした。アプレットはhttp://www.cs.rpi.edu/~madiav/launch.htmlにあります。

残念ながら、スタック トレースや Java コンソールからの出力を収集するために、この別のマシンにアクセスすることはできません。しかし、コンピューターの Java コンソールがクラスが見つからないことに関連する多くのメッセージを吐き出していることに気付きましたが、appet は期待どおりに実行されたので無視しました。

Java コンソールからの出力全体は、http://pastebin.com/DjFAJgVW にあります。クラスが見つからないタイプの行の例は次のとおりです。

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

これらを取り除く方法や、これが他のマシンでの実行の失敗の原因であるかどうかを知っている人はいますか?

4

2 に答える 2

1

「クラスが見つかりません」というメッセージは、通常、.. を追加することで減らすことができます。

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

..applet要素に。少なくともクラスが Jar'd の場合。

詳細については、特別なアプレット属性を参照してください。


注: これはHTMLのアプレットparamであり、JNLP ファイルのではありませんparam


友達にjava.version と java.vendorのプロパティを報告してもらいます。


アプレットは、Sun の 1.6.0_10+ 以降の JNLP によってのみ構成できます。それでも、Linux で「次世代」プラグインを使用するには、ブラウザを特別に構成する必要がありました。'next gen. / 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 インスタンスを終了することはできません。私はそれを一度「回避」する方法を考え出し、それを試してみました-ブラウザ全体がクラッシュするのを確認しました。;)

テスト: 信頼ダイアログが OK の場合:

アプレットが実行され、フリー フローティング 'ミキサー' をポップするボタンが生成されます。ボタンは音を出すことができますが、そこから理解できませんでした。


なぜこのアプレットは信頼を必要とするのでしょうか?


JFrameおそらく、アプレットを省略して、JNLP で直接起動する方がよいでしょう。

エンド ユーザーが 1.6.0(_10+) を持っていることを期待しているように見えるので、呼び出さsetMinimumSize()れたJFrame後に呼び出すことも価値がありpack()ます。

于 2011-04-11T04:57:06.233 に答える
0

しかし、セキュリティ例外で失敗し続けたため、そのマシンでアプレットを実行することができませんでした。

証明書の警告が表示されますが、実行されます。多分Javaバージョンの問題?私はかなり最近の1.6バージョンを持っています。

于 2011-04-11T05:05:25.210 に答える