我正在尝试使用Java Web Start替换Java小程序,但每次我直接从Web服务器或直接从我的计算机运行.jnlp文件时都会出错。
我看到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文件:
<?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>
我尝试过的事情:
我确实想知道未完全签名的罐子是否重要(我的罐子在开发过程中目前是自签名的)但在这种情况下我会发现不同的错误。
好像将jar文件下载到一个位置并进行验证,但是当JVM尝试启动它时无法找到。可能存在缓存位置冲突吗?
答案 0 :(得分:0)
其中一个原因可能是JRE 7起安全性很高。需要签名。