我在一个空目录中有一个超简单的文件:
public class Test {
public static void main(String[] args) {
System.out.println("Test");
}
}
以下按预期工作
javac Test.java
java Test
> Test
我在 Mac OS X 上,使用 emma-2.0.5312 和 java 1.7.0_40
emma.jar 已安装到 /Library/Java/Extensions,因此可以使用
java emmarun
(它显示使用 emmarun 的帮助)
接下来我跑
java emmarun -cp . Test
我得到了错误:
emmarun: [MAIN_METHOD_NOT_FOUND] application class [Test] does not have a runnable public main() method
Exception in thread "main" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] application class [Test] does not have a runnable public main() method
at com.vladium.emma.rt.AppRunner._run(AppRunner.java:497)
at com.vladium.emma.rt.AppRunner.run(AppRunner.java:97)
at com.vladium.emma.runCommand.run(runCommand.java:247)
at emmarun.main(emmarun.java:27)
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 11
这是什么原因造成的?显然它确实有一个公共的、可访问的 main 方法,那么为什么 emma 找不到呢?