Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当启动JNLP文件时,幕后会发生什么?_Java_Eclipse_Java Web Start_Jnlp - Fatal编程技术网

Java 当启动JNLP文件时,幕后会发生什么?

Java 当启动JNLP文件时,幕后会发生什么?,java,eclipse,java-web-start,jnlp,Java,Eclipse,Java Web Start,Jnlp,我正试图调试一个过时JNLP资源的问题,并希望更好地了解它们实际上是如何工作的 我使用JNLP文件从远程服务器运行应用程序。在我的测试中,我设法创建了一个副本JNLP,如下所示,它将从我的本地机器中提取资源: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="file:/C:/local/path/to/my/jnlp" href="Client.jnlp"> <infor

我正试图调试一个过时JNLP资源的问题,并希望更好地了解它们实际上是如何工作的

我使用JNLP文件从远程服务器运行应用程序。在我的测试中,我设法创建了一个副本JNLP,如下所示,它将从我的本地机器中提取资源:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="file:/C:/local/path/to/my/jnlp" href="Client.jnlp">
    <information>
        <title>Client</title>
        <description>Development Testing</description>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.7+" />
        <property name="jnlp.env" value="dev"/>   
        <jar href="lib/client.jar" main="true"/>
        <jar href="lib/Utils-1.3.6-SNAPSHOT.jar"/>
    </resources>
    <application-desc main-class="path.to.main.client.Class" />
</jnlp>

客户
开发测试
我在Eclipse中运行了这个程序,一切似乎都按照预期运行。然后,我将JNLP文件从Eclipse复制到我计算机上的另一个目录中,运行该文件,它再次按预期工作

然后,我将保存的文件更改为以下文件:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="file:/C:/local/path/to/my/jnlp" href="Client.jnlp">
    <information>
        <title>Client</title>
        <description>Development Testing</description>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.7+" />
        <property name="jnlp.env" value="dev"/>   
        <jar href="lib/client.jar" main="true"/>
        <jar href="lib/Utils-1.4.1-SNAPSHOT.jar"/>
    </resources>
    <application-desc main-class="path.to.main.client.Class" />
</jnlp>

客户
开发测试
当我重新运行在Eclipse外部复制的JNLP时,它给了我一个错误,说它找不到Utils-1.4.1-SNAPSHOT.jar文件。然而,在Notepad++中检查JNLP时,我看到
条目仍然是Utils-1.3.6-SNAPSHOT.jar

这最终让我想到了两个问题:

  • 下载并双击JNLP文件时,哪个文件决定在哪里查找资源(或查找哪个):文件中定义的本地副本还是远程副本?我有点困惑,为什么我运行的JNLP在其中列出了一个jar版本,但是搜索的jar是不同的。其他时候,我也运行过相同的文件,看起来1.3.6看起来不错。我想我遗漏了一些东西
  • 这些文件和依赖项是否缓存在我可以查看它们的地方?我读到
    C:\Users\\AppData\LocalLow\Sun\Java\Deployment\cache\
    应该有这些文件,但我看到的只有两个名为“security”和“6.0”的目录。“6.0”文件夹中的文件和文件夹在运行JNLP时似乎会更新,但它们只是另一组编号为0-63的神秘文件夹,其中包含名称为十六进制字符串的文件
    我非常感谢您能深入了解这些东西的内部工作原理。

    javaws-viewer
    将向您展示缓存的应用程序
    javaws-clearcache
    将清除它们。我确信按平台划分的缓存文件的位置在stackoverflow.com上的某个地方。对于一般错误,您也可以尝试JaNeLa-它是一个JNLP分析器。。。()@Lonzak我的网站上也有一罐JaNeLA制作的罐子。@AndrewThompson啊,好的,我搜索了一下,但没有找到任何东西。谢谢你的链接@Lonzak“我搜索了它,但什么也没找到。”是的,我猜是一些小应用。在“搜索”计划中,我的共享驱动力排名不高。“谢谢你的链接!”不客气
    javaws-viewer
    将显示缓存的应用程序
    javaws-clearcache
    将清除它们。我确信按平台划分的缓存文件的位置在stackoverflow.com上的某个地方。对于一般错误,您也可以尝试JaNeLa-它是一个JNLP分析器。。。()@Lonzak我的网站上也有一罐JaNeLA制作的罐子。@AndrewThompson啊,好的,我搜索了一下,但没有找到任何东西。谢谢你的链接@Lonzak“我搜索了它,但什么也没找到。”是的,我猜是一些小应用。在“搜索”计划中,我的共享驱动力排名不高。“谢谢你的链接!”不客气