我在查看一些Java源代码时注意到main
方法没有定义。
那么Java如何在不知道从何处开始的情况下编译源代码呢?
我在查看一些Java源代码时注意到main
方法没有定义。
那么Java如何在不知道从何处开始的情况下编译源代码呢?
main
方法只在Java虚拟机执行代码时使用。没有main
方法,代码无法执行,但仍然可以编译。
在编译代码时,通常在命令行上指定一组文件,例如:
javac MyClass1.java MyClass2.java
Java编译器(javac
)检查每个传递给它的类并将其编译为一个 .class 文件。main
方法的原因之一是设计成作为库使用,而不是被执行。main
方法,但是Java编译器本身的源代码确实有一个main
方法。运行和编译是有区别的。Java代码可以逐步编译。只需要一个main
方法来运行代码。编译器足够聪明,当你编译时,就会安排所有的依赖关系,因此Java“知道从哪里开始”。
如果你正在构建某种标准容器中的Web应用程序,你的代码可能没有main
方法。容器有这个方法,但是你只需编写插件组件即可。
// 仅适用于Java 1.6或更早版本
public class Test{
// this is static block
static{
System.out.println("This is static block");
}
}
在Java中(运行时):
其中一种方法是静态块,但在JDK的早期版本中不包括JDK 1.7。
class A3{
static{
System.out.println("static block is invoked");
System.exit(0);
}
}
package com.test;
public class Test {
static {
System.out.println("HOLAAAA");
System.exit(1);
}
}
//by coco
//Command line:
//java -Djava.security.manager=com.test.Test
abstract class hello extends javafx.application.Application
{
static
{
System.out.println("without main method");
System.exit(0);
}
}
public class Test{
// this is static block
static{
System.out.println("This is static block");
System.exit(0);
}
}
这段代码在JDK 1.6或更早版本中可以正常运行。但在1.7及以后的版本中,需要包含一个main()
函数。
是的,我们可以在没有主方法的情况下运行Java程序,为此我们将使用静态函数
以下是代码:
class Vishal
{
static
{
System.out.println("Hi look program is running without main() method");
}
}
这将输出"嗨,看起来程序在没有main()方法的情况下运行"
java.lang.NoSuchMethodError
。 - user207421
java.lang.NoSuchMethodError
错误,指出找不到main()
方法。 - user207421