从 Windows 命令行调用 jar-file 时,System.out 不起作用

2022-09-05 00:09:48

我有这个类:

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

我使用Eclipse的“导出到可运行的JAR”函数将其制作成可执行的jar文件(test.jar)。当我在Eclipse中运行这个程序时,它会打印出“Hello World!”,但是当我从命令行调用jar文件时,没有任何反应。

我尝试过像这样调用jar文件:

test.jar
test.jar -jar

没有任何输出。

我有另一个程序也有副作用(除了输出到stdout之外),当副作用正在执行时(这告诉我jar文件肯定被执行了),同样没有输出给命令行。我也尝试过使用stderr,但这没有什么区别。有谁知道我怎样才能做到这一点?

谢谢!


答案 1

您必须使用以下命令运行 JAR

java -jar test.jar

(必须将 JRE 的 bin 文件夹添加到 PATH 中,才能使命令从任何位置工作)

注意:我知道您使用Eclipse创建了JAR,但您可能想知道可执行JAR的工作原理


答案 2

前面的答案是正确的,所以我只是稍微澄清一下“可执行jar”的概念。没有“可执行jar”这样的东西,相当于Windows中的exe文件,在“可执行jar”中,你只需要指定“入口”点(你想要默认执行的主类)

jar基本上只是一个存档,你仍然需要java来实际启动jar( java -jar your.jar )

事实上,在Windows中,你可能与javaw有关联.exe这意味着当你双击jar时,操作系统将启动它,就像用记事本自动打开.txt文件一样,它不会使.txt可执行文件。

也看看这个 :JAR文件显示


推荐