【问题标题】:How to specify applet libraries in JNLP file如何在 JNLP 文件中指定小程序库
【发布时间】:2011-05-25 09:21:38
【问题描述】:

我正在尝试使用 JNLP 部署一个小程序。文件结构如下:

/
  dbstats.html
  dbstats.jnlp
  dbstats.jar
  lib/
    substance.jar
    trident.jar
    guava-0.7.jar

这是我的 HTML:

<html>
    <head>
        <title>Dreambearstatistieken</title>

        <script src="http://www.java.com/js/deployJava.js"></script>
        <script type="text/javascript">

            var attributes = {
                code:'dreambear.stats.viewer.DBStatsViewer',
                width:900, height:600
            };
            var parameters = {jnlp_href: "dbstats.jnlp"};
            var version = "1.6";

        </script>

    </head>
    <body>

    <script type="text/javascript">
        deployJava.runApplet(attributes, parameters, version);
    </script>

    </body>
</html>

还有 JNLP 文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Dreambearstatistieken</title>
        <vendor>Weber</vendor>
    </information>
    <resources>
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
        <jar href="lib/trident.jar" />  
        <jar href="lib/substance.jar" />
        <jar href="lib/guava-r07.jar" />
        <jar href="dbstats.jar" main="true" />
    </resources>
    <applet-desc 
         name="Dreambearstatistieken"
         main-class="dreambear.stats.viewer.DBStatsViewer"
         width="900"
         height="600">
     </applet-desc>
     <update check="background" />
</jnlp> 

据我所知,一切都应该没问题,但事实并非如此。我在org.pushingpixels.substance.api.skin.SubstanceNebulaLookAndFeel 上得到一个ClassNotFoundException,它位于substance.jar 中。我做错了什么?

更广泛地说,有没有关于在 2010 年代使用小程序和 JNLP 的好教程或书籍?

【问题讨论】:

    标签: java jar applet jnlp next-generation-plugin


    【解决方案1】:

    首先你的codebase 是空的。据我记得它应该包含您的应用程序的绝对路径。可能我错了,但从这里开始。如果它有帮助但您希望重用 jnlp 文件,请尝试 codebase="." (虽然我不确定它是否合法。)

    接下来,尝试使用浏览器下载 lib 目录下的其中一个 jar。需要确保该目录是可访问的。

    祝你好运!

    【讨论】:

    • 它适用于.,但前提是我将这些东西上传到服务器。如果我在本地打开 html 文件,则不会。
    • 对于嵌入式 JWS 小程序,Sun 表示要完全删除 codebase 属性(注意这与将其保留为空白值不同)。在这种情况下,代码库被假定为小程序 HTML 的位置 - 嵌入它的小程序页面出现的任何位置。
    • 好点,安德鲁。我不知道。下次使用 JNLP 进行开发时,我会尝试这种方法。
    【解决方案2】:

    您还必须将jlnp 的名称放在href="" 上。这样做:

    <jnlp spec="1.0+" codebase="http://mydomain:5500/myapp" href="dbstats.jnlp">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多