【发布时间】:2022-01-10 22:46:08
【问题描述】:
这是我的 java 代码:
// file name is Strings.java
public class Main {
public static void main(String[] args){
String txt = "Hello\rWorld!";
System.out.println(txt);
String txt2 = "Trying\rthis";
System.out.println(txt2);
}
}
我试图从我的终端执行它,并看到了这个:
$ java Strings.java
World!
thisng
我也尝试从 Visual Studio Code 执行此操作,结果相同。所以输出与this tutorial 中写的不同。有人可以告诉我为什么吗?谢谢!
【问题讨论】:
-
你认为应该怎么做?是什么让你这么认为?
-
@Elliott Frisch 其实你错了,因为java 10左右,你可以用命令java X.java编译运行单个源文件
-
openjdk.java.net/jeps/330 这是 Java 11,对不起
-
@user16320675 刚刚测试过。确实
java Strings.javaworks 尽管Strings.java持有代码为public class Main{...}(javac不允许,因为公共顶级类应该在具有相同的文件中name 作为类名,这意味着它需要Main.java)。今天学到了新东西。谢谢。 -
@Pshemo JLS 7.6. Top Level Class and Interface Declarations: " 当且仅当包存储在文件系统中时(第 7.2 节),主机系统可以选择强制执行它是编译时的限制如果在由类或接口名称加上扩展名(例如 .java 或 .jav)组成的名称下的文件中找不到类或接口,则错误,如果以下任一为真: .... - 类或接口被声明为 public ..."
标签: java carriage-return