class WithoutMain {
static
{
System.out.println("Without main class!!!");
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图在大于7的java版本中运行上面的代码时,我得到以下错误.该程序编译成功,但没有找到主类.主类应该包含方法:public static void main(String [] args).
有人可以请指导我为什么Java不支持在java7之后没有main运行程序
AFAIK此更改特定于Java 7.在Java 8中,您可以执行此操作.你不能在Java 7中这样做,因为它在没有首先加载失败的类的情况下查找方法.无论如何,它已经在Java 8中被改回.
public class Main {
static {
System.out.println("Without main class!!! with " + System.getProperty("java.version"));
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
版画
Without main class!!! with 1.8.0_66
Run Code Online (Sandbox Code Playgroud)
注意:这会杀死整个程序.如果您希望程序在没有主程序的情况下继续运行,则可以执行此操作
public class Main {
static {
// do something which starts threads
System.out.println("Without main class!!! with " + System.getProperty("java.version"));
if (true)
throw new ThreadDeath();
}
}
Run Code Online (Sandbox Code Playgroud)
这将阻止错误消息,但如果存在非守护程序线程,则保留后台线程运行.
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |