2012-05-15 50 views
3

远程运行Java Web Start应用程序时出现问题。在本地运行时,不存在这种问题。问题是,jar文件没有部署到本地temp文件夹(正确部署jnlp文件),因此FileNotFound异常被抛出到Java控制台。通过远程访问未找到java web start jar文件

任何人都可以帮忙吗?

的index.html:

<body> 
<!-- ... --> 
<script src= 
    "http://www.java.com/js/deployJava.js"></script> 
<script> 
    // using JavaScript to get location of JNLP 
    // file relative to HTML page 
    var dir = location.href.substring(0, 
     location.href.lastIndexOf('/')+1); 
    var url = dir + "myapp.jnlp"; 
    deployJava.createWebStartLaunchButton(url, '1.6.0'); 
</script> 
<!-- ... --> 

JNLP文件:

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href=""> 
<information> 
    <title>mytitle</title> 
    <vendor>mycompany</vendor> 
    <offline-allowed/> 
</information> 
<resources> 
    <!-- Application Resources --> 
    <j2se version="1.6+" href= 
     "http://java.sun.com/products/autodl/j2se"/> 
    <jar href="myapp.jar" 
     main="true" /> 

</resources> 
<application-desc 
    name="My Application"> 
</application-desc> 
<update check="background"/> 

Java控制台抛出: 异常:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: file:/C:/DOCUME~1/myhome/LOCALS~1/Temp/myapp.jar 
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source) 
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

包装异常:

java.io.FileNotFoundException: C:\DOCUME~1\myhome\LOCALS~1\Temp\myapp.jar (The system cannot find the file specified) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source) 
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source) 
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source) 
at com.sun.deploy.net.BasicHttpRequest.doGetRequest(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source) 
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source) 
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
+0

可能相关:http://stackoverflow.com/questions/1260950/launch-runnable-jar-from-web-start – assylias

回答

2

必须指定href和代码库Java Web Start的正确的价值观才能正常工作。原因是启动程序可能选择调用一个新的JVM,并给出JNLP脚本的缓存副本,而不需要返回到原始版本。

+0

是的,这有帮助。谢谢。 – xMichal

相关问题