我从应用程序中获取了为我生成的Java代码.我拿了JRE并将所有文件解压缩到一个新目录中.有一个META-INF文件夹,它有一个没有任何main方法的MANIFEST.MF.
Witin这个JRE是我感兴趣的代码类,但是当我CMD以下时...
java Steve.class
我收到这个错误......
Could not load for find Main Class Steve.class.
Run Code Online (Sandbox Code Playgroud)
我假设在所有这些类文件中的某个地方有一个Main类但是如何搜索所有这些文件来找到它?有申请吗?
谢谢!
.class调用Java程序时不需要后缀.像这样做:
java Steve
Run Code Online (Sandbox Code Playgroud)
要确定哪个类有main方法,可以javap在每个类文件上使用(Java类文件反汇编程序).例如:
$ javap Foo
Compiled from "Foo.java"
public class Foo extends java.lang.Object{
public Foo();
public static void main(java.lang.String[]);
}
Run Code Online (Sandbox Code Playgroud)
第一:公开此方法签名的每个类:
public static void main(String[] args) { }
Run Code Online (Sandbox Code Playgroud)
可以是可从 JVM 启动的主类,并且有资格放入清单以启用 shell 执行。
第二:当你在 JRE 中启动一个类时,你必须指定类的全限定名;例如,如果 Steve.class 文件位于 com/mycompany/app 之类的树结构中,则从应用程序的根目录开始,其中 MANIFEST 目录,您应该从根目录启动它,键入:
java com.mycompany.app.Steve
Run Code Online (Sandbox Code Playgroud)
因此,如果 Steve 公开了一个 main 方法,并且您可以从根正确地指向它,那么您就可以启动它。