0

我有一些来自 .jar 文件的类文件。我正在寻找一个带有 Main 方法的类,这样我就可以看到这个程序在没有网络包袱的情况下是如何工作的。

>javap HaploGrepServer/HaploGrepMain
Compiled from "HaploGrepMain.java"
public class HaploGrepServer.HaploGrepMain extends java.lang.Object{
    public HaploGrepServer.HaploGrepMain();
    public static void main(java.lang.String[])       throws java.io.IOException;
}

伟大的!我找到了

>java HaploGrepServer/HaploGrepMain
Exception in thread "main" java.lang.NoClassDefFoundError: org/restlet/Component
    at java.lang.ClassLoader....

好的,我可以添加

>java -cp org.restlet.jar HaploGrepServer/HaploGrepMain
Exception in thread "main" java.lang.NoClassDefFoundError: HaploGrepServer/HaploGrepMain
Caused by: java.lang.ClassNotFoundException: HaploGrepServer.HaploGrepMain
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: HaploGrepServer/HaploGrepMain. Program will exit.

是什么赋予了?

4

3 回答 3

1

当您在包中调用类时,请尝试使用点来分隔包组件,而不是斜线:

java -cp .:org.restlet.jar HaploGrepServer.HaploGrepMain
于 2012-10-02T19:46:39.517 回答
1

如果HaploGrepServer在当前目录中,则需要在类路径中包含当前目录.

java -cp .:org.restlet.jar HaploGrepServer.HaploGrepMain
于 2012-10-02T20:03:35.353 回答
1

命令:

    java HaploGrepServer.HaploGrepMain

使用“ ”的默认类路径.。当您提供类路径时:

    java -cp restlet.jar HaploGrepServer.HaploGrepMain

类路径现在包含 restlet jar。

因此,您需要包含两个位置的类路径:

   java -cp restlet.jar:. HaploGrepServer.HaploGrepMain

注意:如果您在 Windows 平台上,请使用分号 to 而不是冒号。

于 2012-10-02T20:05:24.143 回答