2016-08-31 9 views
1

Java Web Startを使用してJavaアプレットを置き換えようとしていますが、Webサーバーから直接または自分のコンピュータから直接.jnlpファイルを実行するたびに、エラー。Java Web Start使用時にファイルが見つかりません

Java Web Startスプラッシュ画面が表示され、デフォルトの進行状況バーが表示されます。ダウンロードしてjarファイルを確認しますが、直後に「アプリケーションを起動できません」というエラーメッセージが表示されます。

CouldNotLoadArgumentException[ Could not load file/URL specified: C:\Users\[username]\AppData\Local\Temp\tmp_cache9015150161909242571.tmp] 
    at com.sun.javaws.Main.launchApp(Unknown Source) 
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
    at com.sun.javaws.Main.access$000(Unknown Source) 
    at com.sun.javaws.Main$1.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.io.FileNotFoundException: C:\Users\[username]\AppData\Local\Temp\tmp_cache9015150161909242571.tmp (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.Main.launchApp(Unknown Source) 
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
    at com.sun.javaws.Main.access$000(Unknown Source) 
    at com.sun.javaws.Main$1.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Tempフォルダには、tmp_cacheのようなファイルはありません。ここで

私のJNLPファイルである:使用

  • を(期待どおりに動作)JNLPファイルと私のWebサーバーからJARをダウンロード
  • :私が試した

    <?xml version="1.0" encoding="utf-8"?> 
    
    <jnlp spec="1.0+" 
        codebase="http://localhost:2020/MyServer/applets" 
        href="basicTest.jnlp"> 
        <information> 
         <title>JWS Test</title> 
         <vendor>My Company</vendor> 
        </information> 
    
        <resources> 
         <j2se version="1.7+" 
          href="http://java.sun.com/products/autodl/j2se"/> 
         <jar href="basicTest.jar" main="true" /> 
        </resources> 
    
        <application-desc 
         name="Test Name" 
         main-class="main.Entry"> 
        </application-desc> 
        <update check="background"/> 
    </jnlp> 
    

    物事メインメソッドとSystem.out.print()ステートメント(同じ結果)を持つ新しい、ベアボーンのjarファイル

  • .jnlpファイル内のhrefの変更(別のエラーメッセージ、.jarが見つかりません。 、 予想通り。メインクラスの属性(同じ結果の値を変更する404)
  • は、JVMが起動したことがないことを示唆していると通過する際に私のサーバーのログはどちらか、(これらの作業を正しく日から他のexample appsを実行
  • )これを正しく示して完全に署名されていないjarファイルが問題ならば、私は不思議をしたブラウザやは.jnlpダウンロードしたファイルを実行している)
  • )(同じ結果を私のJavaのキャッシュや一時ファイルをクリア

は(私のjarファイルは現在、自己署名されています開発中)、私はその場合に別のエラーが予想されます。

jarファイルが1つの場所にダウンロードされ、検証されたように見えますが、JVMが起動しようとしたときに見つからないようです。キャッシュの場所の競合がありますか?

+1

使用しているjavawのバージョンは何ですか? 'jnlp spec =" 7.0+ "'で試したことがありますか(そしてコードベースビットを削除しましたか?) ''を使ってキャッシングの問題になるかどうか確認しましたか? – assylias

+0

私はこれらの提案を試みましたが、私は "コードベース"を削除することが少し助けになったと思います。 jarが "高い"セキュリティ要件を満たしていないため、おそらく署名されていないため、例外リストに "file:/"を追加すると、今度はハードドライブからアプリケーションが実行されます。しかし、私は自分のサイトからダウンロードするとまだ動作しません。なぜなら、アップデートチェックのjarとjnlpへのパスが間違っているからです。これまでのご協力ありがとうございます。 –

+0

いくつかのJava 1.7にはいくつかのバグがありましたが、キャッシュを使いこなしたJava 1.8バージョンもあります。あなたはJava 1.8最新バージョンを使用していますか? – assylias

答えて

0

理由の1つは、JRE 7以降のセキュリティが高いことです.Signing jarが必要です。

関連する問題