【问题标题】:Deploying JNLP file on a server (NOT a localserver)在服务器上部署 JNLP 文件(不是本地服务器)
【发布时间】:2013-02-03 15:55:45
【问题描述】:

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

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

我是新手,因此非常感谢任何帮助或支持 cmets。先感谢您。

【问题讨论】:

  • main-class="Webstart.Main" 这表明Main.java 声明了package Webstart;,而代码没有包声明。 (所以它不会起作用。)这些值不是魔法咒语,你真的需要理解它们的含义,它们的要求,以及以什么形式。
  • 还有&lt;jar href="Webstart.jar" /&gt;。我认为应该指向 test.jar
  • 使用@AndrewThompson 的 JaNeLa 工具来验证您的 jnlp 文件。顺便说一句,在本地服务器上成功了吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多