代码之家  ›  专栏  ›  技术社区  ›  user1930845

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

  •  1
  • user1930845  · 技术社区  · 12 年前

    正在配置Web启动。我试着查了一下,但找不到我错误的答案。

    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);
        }
    } 
    

    我运行文件的方式是在网络浏览器URL中键入名称。

    我是新手,所以如果有任何帮助或支持我的意见,我将不胜感激。提前谢谢。

    1 回复  |  直到 12 年前
        1
  •  2
  •   Perception    12 年前

    我马上就看到了两个问题。

    1. 在JNLP文件中,您将JAR指定为 Webstart.jar ,但在您的部署中,它被称为 test.jar
    2. 在JNLP文件中,您将主类指定为 Webstart.Main ,但是你的 Main 类不在任何包中(您发布的代码中包含了该包)。