Vim - 当我 运行 我的 Java 文件时,println 语句似乎没有被执行

Vim - When I run my Java file, the println statements don't seem to be getting executed

我正在使用 GVim。我创建了一个名为 InsertionSort.java 的文件,这是文件中的内容:

public class InsertionSort {
    public static void main (String[] args) {
        System.out.println("Hello World");
    }
}

然后我打开终端并做了

sudo apt-get install default-jdk

安装javac。接下来,我回到 GVim 并做了:

:!javac %

到运行当前文件。当我这样做时,它说:

!javac /Documents/Java/InsertionSort.java
Press ENTER or type command to continue

当我按 ENTER 键时,它返回到 InsertionSort.java。它不打印任何东西。我查看了这个 post: Compiling Java code in Vim more efficiently 并且评分最高的答案说要将这些添加到我的 .vimrc 文件中:

autocmd Filetype java set makeprg=javac\ %
set errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#
map <F9> :make<Return>:copen<Return>
map <F10> :cprevious<Return>
map <F11> :cnext<Return>

将以上行添加到我的 .vimrc 文件后,我重新打开 GVim / InsertionSort.java 并按 F9 并显示:

!javac Documents/Java/InsertionSort.java 2>&1| tee /tmp/vcqcE1x/8

:copen

Press ENTER or type command to continue

当我按下 ENTER 键时,它打开了一个名为:

的新 GVim 文件
[Quickfix List] :javac Documents/Java/InsertionSort.java

并且文件中没有任何内容(它没有说 "Hello World")。我如何使它成为 运行 文件以便它显示 "Hello World"?

我认为您可能混淆了 javajavac 程序。 javac*.java 个源文件编译成 *.class 个字节码文件。 java 获取已编译的 *.class 字节码文件并 运行s 它们。因此,如果您的目标是编译 运行 一个名为 Example.java 的文件,您需要这样做:

javac Example.java
java Example

javac编译器,不是执行器。它会将您的源代码编译成 class 文件,然后需要 运行 和 java 而不是 javac.

如果您的系统有 jdk,您应该可以使用以下命令编译 java 文件 javac program.java 当你的 java 文件编译成功后,JVM 将 java 文件转换为 .class 文件。现在您可以使用 java program

运行 您的 .class 文件