Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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_Jsp_Applet_Jnlp_Next Generation Plugin - Fatal编程技术网

Java 使用JNLP启动小程序时类未找到异常

Java 使用JNLP启动小程序时类未找到异常,java,jsp,applet,jnlp,next-generation-plugin,Java,Jsp,Applet,Jnlp,Next Generation Plugin,我在尝试使用JNLP启动jar文件时遇到了一个问题。我们之前在没有JNLP的情况下启动了小程序,没有任何问题。我们希望启动三个不同的JAR,它们与jnlp文件一起保存在同一目录中。所有JAR都已下载,但当我们尝试从其中一个外部JAR(即不是主JAR的JAR)加载类时,就会看到classNotFoundError。应用程序一直运行到发生这种情况,因此我们的主jar似乎可以执行。JNLP文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <

我在尝试使用JNLP启动jar文件时遇到了一个问题。我们之前在没有JNLP的情况下启动了小程序,没有任何问题。我们希望启动三个不同的JAR,它们与jnlp文件一起保存在同一目录中。所有JAR都已下载,但当我们尝试从其中一个外部JAR(即不是主JAR的JAR)加载类时,就会看到classNotFoundError。应用程序一直运行到发生这种情况,因此我们的主jar似乎可以执行。JNLP文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="/jars/file.jnlp">
<information>
    <title>Client</title>
    <vendor>My Vendor</vendor>
    <description>Description</description>
    <description kind="short">Desc</description>
    <offline-allowed />
</information>
<security>
    <all-permissions />
</security>

<resources>
    <j2se version="1.6+" />
    <jar href="mainJar.jar" main="true" download="eager"/>
    <jar href="extJar1.jar" main="false" download="eager"/>
    <jar href="extJar2.jar" main="false" download="eager" />
</resources>
<applet-desc 
    name="MyApp" 
    main-class="path-to-main-class"
    width="1"
    height="1">
</applet-desc>
</jnlp>

客户
我的卖主
描述
描述
然后从HTML文件启动小程序,如下所示:

<applet
    code="com.mycompany.net.MyMainClass" 
    name="MyApp" 
    archive="/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar" 
    id="myId" 
    width="1" 
    height="1" 
    mayscript
    alt="The java plugin must be installed.">
            <param name="jnlp_href" value="/jars/file.jnlp"/>
    Java 1.5 or higher required.  
</applet>

需要Java 1.5或更高版本。
我已经和Janela检查了jnlp,没有错误。它可以从Eclipse运行小程序,也可以不运行jnlp文件。它还可以从javaws打开jnlp文件,指定文件或文件的url。这让我觉得html是不正确的。然而,这是我所能做到的。我已尝试使用以下javascript启动,结果相同:

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {
        id:'myId', 
  code:'com.mycompany.net.MyMainClass', 
  width:1, 
  height:1, 
  name:"MyApp"
};
    var parameters = {
        jnlp_href:"/jars/file.jnlp",
        archive:"/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar",
    };
deployJava.runApplet(attributes, parameters, '1.6');

变量属性={
id:'myId',
代码:'com.mycompany.net.MyMainClass',
宽度:1,
身高:1,,
名称:“MyApp”
};
变量参数={
jnlp_href:“/jars/file.jnlp”,
存档:“/jars/extJar1.jar,/jars/extJar2.jar,/jars/mainJar.jar”,
};
runApplet(属性、参数,“1.6”);

我的JNLP使用外部JAR,我定义了
codebase=”http://example.com/full/path/to/jars/“
以及
href=”http://example.com/full/path/to/jars/file.jnlp“
标记中

编辑试着查看我的操作


edit2检查
Object
而不是
Applet
是否有帮助。

我的JNLP使用外部JAR,我定义了
codebase=”http://example.com/full/path/to/jars/“
以及
href=”http://example.com/full/path/to/jars/file.jnlp“
标记中

编辑试着查看我的操作


edit2检查
Object
而不是
Applet
是否有帮助。

我看不出JNLP(使用JaNeLA的良好调用)或Applet/JS元素有什么问题。你在测试什么浏览器?Chrome和Firefox。我想我找到了我的根本原因。一旦JAR全部下载完毕,服务器就会收到一个新的请求,请求提供后来找不到的类。但是为什么它在我的jar文件夹中查找类文件而不是在jar中?jnlp标记中的参数?不管怎样,这是我的答案。当它试图在服务器上查找类文件时,我通过返回404而不是重定向,成功地使它工作。我完全不知道为什么它会转到服务器上获取类文件,但这是下一步要解决的问题。至少它现在可以工作了。@Erik似乎与您的情况很接近,尽管您没有指定示例HTML文件的路径。如果它不在/jars/文件夹中,那么隐式代码库将指向与HTML文件相同的目录。你在测试什么浏览器?Chrome和Firefox。我想我找到了我的根本原因。一旦JAR全部下载完毕,服务器就会收到一个新的请求,请求提供后来找不到的类。但是为什么它在我的jar文件夹中查找类文件而不是在jar中?jnlp标记中的参数?不管怎样,这是我的答案。当它试图在服务器上查找类文件时,我通过返回404而不是重定向,成功地使它工作。我完全不知道为什么它会转到服务器上获取类文件,但这是下一步要解决的问题。至少它现在可以工作了。@Erik似乎与您的情况很接近,尽管您没有指定示例HTML文件的路径。如果它不在/jars/文件夹中,那么隐式代码库将指向与HTML文件相同的目录。