让JNLP安装在本地计算机上运行

时间:2016-04-07 16:43:12

标签: java jnlp

我有一个通过JNLP分发的应用程序。这很好用,除了少数几个没有足够的互联网连接下载应用程序的地方(T1连接)。

我通过创建一个可以放在磁盘上,复制并在本地运行JNLP文件的软件包来获取应用程序。

JNLP文件现在看起来像这样:

    <jnlp spec="7.0+" href="launch.jnlp">
    <information>
        <title>EAGLE TEST</title>
        <icon href="img/splash.png" kind="splash"/>
        <icon href="img/icon.png"/>
        <offline-allowed/> 
        <shortcut online="false" install="true">
            <desktop />
            <menu sub-menu="EAGLE"/>
        </shortcut>
    </information>
    <update check="timeout" policy="prompt-run"/>
    <security>fsddf
        <all-permissions/>
    </security>
   <resources>
    <j2se version="1.8+" initial-heap-size="128m" max-heap-size="512m" />
    <property name="jnlp.versionEnabled" value="true"/>

<jar href="eagle-client-core.jar" version="2.2.0-b4" main="true"/>
<jar href="biometric-services-commons.jar" version="1.2"/>
<jar href="jackson-annotations.jar" version="2.4.3"/>

 </resources>
 <application-desc main-class="foo.bar.baz.client.Main">
 </application-desc>
</jnlp>

看起来不错。但是,当我运行launch.jnlp文件时,我得到一个例外:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: (file:/C:/Users/me/path/app/webstart/eagle-client-core.jar?version-id=2.2.0-b4, 2.2.0-b4)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)

包装异常:

java.io.FileNotFoundException: C:\Users\me\path\app\webstart\eagle-client-core.jar (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 sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)

现在,这表明无法找到该文件。但是,路径

  

C:\用户\我\路径\应用\在webstart \鹰客户core.jar添加

是正确的路径。我也尝试将JNLP文件中的代码库指定为

  

文件:/// C:/Users/me/path/app/webstart/launch.jnlp

我收到同样的错误:找不到指定的文件。

我无法找出JNLP无法加载本地资源的潜在原因。我已尝试使用反斜杠作为Windows的前向版本以及许多其他变体。

我使用过JaNeLA工具,它给出了同样的错误,但没有说明如何解决它:问题获取资源eagle-client-core.jar C:\ Users \ me \ path \ app \ webstart \ eagle-client-core.jar(系统无法找到指定的文件。)

任何有关阻止系统查找文件的内容的任何见解都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

我没有听说过在本地提供jnlp文件,但如果你因为连接速度慢而不得不在本地安装一些http服务器,那么将你的应用程序复制到公共文件夹,因为你通常在互联网上提供jnlp。 / p>

现在您可以通过它访问它     $ javaws localhost / launch.jnlp

答案 1 :(得分:0)

代码库现在是可选的。您可以访问以下网址以获取更多信息。 JNLP Syntax

因此,您可以在jnlp中省略该字段并尝试。