java11 允许在一行中编译和执行
java11 allows the compilation and execution in a single line
在名为 filename.java
的文件中
class filename{
public static void main(String[] a){
System.out.println("From filename main method");
}
}
public class ClassName{
public static void main(String[] a){
System.out.println("From First main method");
}
}
遵守以下命令:
命令 1:
C:\javaDJ>java filename.java
From filename main method
命令 2:
C:\javaDJ>javac filename.java
filename.java:7: error: class ClassName is public, should be declared in a file named ClassName.java
public class ClassName{
^
1 error
观察:
命令 1 编译(我假设在内部)并成功执行。
命令 2 抛出编译错误。
问题陈述:
当文件 (filename.java) 包含 public class (ClassName) 时,java cmd 如何能够编译名为 filename.java 的文件未命名为 'filename.java'(文件名的名称。)?
使您能够成功执行命令 1 的功能已在 Java11 中引入。该功能允许您执行 Java 源代码文件直接使用 java 解释器。源代码在内存中编译,然后由解释器执行,而不会在磁盘上生成 .class 文件。检查 this 了解更多信息。
您在 命令 2 中遇到的错误从 Java 开始就一直存在。
突出显示 JEP#Launch Single-File Source-Code Programs 中与行为有关的特定部分
In source-file mode, execution proceeds as follows:
- The class to be executed is the first top-level class found in the
source file. It must contain a declaration of the standard public
static void main(String[]) method.
在名为 filename.java
的文件中class filename{
public static void main(String[] a){
System.out.println("From filename main method");
}
}
public class ClassName{
public static void main(String[] a){
System.out.println("From First main method");
}
}
遵守以下命令:
命令 1:
C:\javaDJ>java filename.java
From filename main method
命令 2:
C:\javaDJ>javac filename.java
filename.java:7: error: class ClassName is public, should be declared in a file named ClassName.java
public class ClassName{
^
1 error
观察:
命令 1 编译(我假设在内部)并成功执行。
命令 2 抛出编译错误。
问题陈述:
当文件 (filename.java) 包含 public class (ClassName) 时,java cmd 如何能够编译名为 filename.java 的文件未命名为 'filename.java'(文件名的名称。)?
使您能够成功执行命令 1 的功能已在 Java11 中引入。该功能允许您执行 Java 源代码文件直接使用 java 解释器。源代码在内存中编译,然后由解释器执行,而不会在磁盘上生成 .class 文件。检查 this 了解更多信息。
您在 命令 2 中遇到的错误从 Java 开始就一直存在。
突出显示 JEP#Launch Single-File Source-Code Programs 中与行为有关的特定部分
In source-file mode, execution proceeds as follows:
- The class to be executed is the first top-level class found in the source file. It must contain a declaration of the standard public static void main(String[]) method.