在服务器(不是本地服务器)上部署JNLP文件

时间:2013-02-19 03:49:27

标签: java jar jnlp classnotfoundexception java-web-start

配置Web Start。我试着查一下但是找不到我错误的答案。

java.lang.ClassNotFoundException: Webstart.Main
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

在我的服务器上,我有:

test.jar
Webstart.jnlp

这是我的.jnlp文件

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://www.[mywebsite].com/_webstart/" href="webstart.jnlp">
  <information>
    <title>JFrame Deom</title>
    <vendor>[ME]</vendor>
    <homepage href="http://www.[mywebsite].com" />
    <description>A Java Webstart Test</description>
    <offline-allowed />
  </information>
  <resources>
    <j2se version="1.7" />
    <jar href="Webstart.jar" />
  </resources>
  <security>
    <all-permissions />
  </security>
  <application-desc main-class="Webstart.Main" />
</jnlp>

这是我的Java类:

import java.awt.BorderLayout;
import javax.swing.*;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame f = new JFrame("My Frame");
        f.setSize(250,250);
        f.setLocation(300,300);
        f.getContentPane().add(BorderLayout.CENTER, new JTextArea(10,40));
        f.setVisible(true);
    }
} 

我运行文件的方法是在Web浏览器URL中输入名称。

我是新手,所以非常感谢任何帮助或支持性评论。先感谢您。

1 个答案:

答案 0 :(得分:2)

我立即看到了两个问题。

  1. 在您的JNLP文件中,您将JAR指定为Webstart.jar,但在部署中称为test.jar
  2. 在您的JNLP文件中,您将主要课程指定为Webstart.Main,但您的Main课程不在任何包裹中(包含在您发布的代码中)。