Java Web启动命令不起作用(Java -CP class_path class_name)



我有一个应用程序,我使用" Java Web start"启动。该应用用于启动其他Java应用程序。问题是,使用命令" Java -cp class_path class_name" java应用程序无法启动,异常"找不到或加载main class_name"。

但是,class.forname(class_name(不会抛出异常:" classNotFoundException",我可以从另一个jar运行静态方法(但它在当前的JVM中(。

不使用" Java Web start",一切都还好。

启动通用应用程序时,我使用命令:java -cp *;com.vitaxa.voidbox.mainapp。通过这种方式,我组成了类路径,从当前目录中收集所有内容。

然后,我可以使用命令启动其他应用程序:Java -cp current_classpath class_name。因此一切正常,但是不使用Java Webstart。

有区别。为了获得classpath,我使用下一个方法:

private static String getClasspath() {
        final StringBuilder sb = new StringBuilder();
        ClassLoader classLoader = TaskRunner.class.getClassLoader();
        if (classLoader == null) {
            classLoader = ClassLoader.getSystemClassLoader();
        }
        final URL[] urls = ((URLClassLoader) classLoader).getURLs();
        for (URL url : urls) {
            sb.append(url.getFile()).append(";");
        }
        return sb.toString();
    }

如果使用普通应用程序运行,classPath是:/d:/wworkdir/applications/firstapp.jar ;/d:/workdir/applications/secondapp.jar; jar; jar; jar ;/dworkdir/applications/thirdapp。jar;

使用Java WebStart运行classPath是:/applications/firstapp.jar ;/applications/secondapp.jar ;/applications/thirdapp.jar。

P.S。我尝试使用system.getProperty(" java.class.path"(,它没有帮助。

问题是您尝试加载的类没有public static void main(String[] args)方法或不是Javafx应用程序,在这种情况下,您可能应该修改代码。另一种情况是您尚未正确加载类路径。确保您要加载的课程包括在路径中,即java -cp .;list_of_jars_including_the_jar_file_containing_your_class class_name_including_the_package information。希望这将解决您的问题。一个例子:

$ java -cp .;my_main.jar;another.jar;yet_another.jar com.example.MyClass

相关内容

最新更新