从Windows命令行调用jar文件时,System.out无法正常工作

Jor*_*rdi 13 java eclipse jar executable-jar

我有这门课:

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

我使用Eclipse的"Export to runnable JAR"函数将其转换为可执行的jar文件(test.jar).当我在Eclipse中运行这个程序时,它打印出"Hello World!",但是当我从命令行调用jar文件时,没有任何反应.

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

test.jar
test.jar -jar
Run Code Online (Sandbox Code Playgroud)

没有任何输出.

我有另一个程序也有副作用(除了输出到stdout),并且正在执行副作用(告诉我jar文件肯定已执行),同样没有给命令行输出.我也尝试过使用stderr,但这没什么区别.有谁知道我怎么做这个工作?

谢谢!

vic*_*ugo 32

您必须使用运行 JAR

java -jar test.jar
Run Code Online (Sandbox Code Playgroud)

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

注:我知道你使用Eclipse创建JAR,但你可能想知道如何做一个可执行的 JAR作品

  • 我相信这个答案是对的.执行只是"test.jar"可能会使用"javaw.exe",这是"java.exe"的无控制台版本,默认情况下与.jar文件相关联. (5认同)

Bil*_*lly 8

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

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

事实上,在Windows中你可能与javaw.exe有关联意味着当你双击jar时操作系统会启动它,比如用记事本自动打开的.txt文件,它不会产生.txt可执行文件.

检查一下: JAR文件显示