我从应用程序中获取为我生成的Java代码。 我拿了JRE并将所有文件解压缩到一个新目录中。 有一个META-INF文件夹,它有一个没有任何main方法的MANIFEST.MF。
Witin这个JRE是我感兴趣的代码类,但是当我CMD以下时......
java Steve.class
我收到此错误...
Could not load for find Main Class Steve.class.
我假设所有这些类文件中的某个地方都有一个Main类但是如何搜索所有这些文件才能找到它?有申请吗?
谢谢!
答案 0 :(得分:6)
调用Java程序时不需要.class
后缀。这样做:
java Steve
要确定哪个类具有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[]);
}
答案 1 :(得分:2)
首先:每个公开此方法签名的类:
public static void main(String[] args) { }
可以是从JVM启动的主类,并且有资格放入清单中以启用shell执行。
第二:在JRE中启动类时,必须指定类的完全限定名称;例如,如果Steve.class文件是一个树结构,例如com / mycompany / app,从MANIFEST目录所在的应用程序的根目录开始,你应该从根目录启动它,输入:
java com.mycompany.app.Steve
因此,如果Steve公开了一个main方法,并且你可以从root中正确指出它,你可以启动它。