Java 从Windows命令行调用jar文件时System.out不工作
我有这门课:Java 从Windows命令行调用jar文件时System.out不工作,java,eclipse,jar,executable-jar,Java,Eclipse,Jar,Executable Jar,我有这门课: public class Test { public static void main(String[] args) { System.out.println("Hello World!"); } } 我使用Eclipse的“Export to runnable JAR”函数将其转换成一个可执行的JAR文件(test.JAR)。当我在Eclipse中运行这个程序时,它会输出“Hello World!”,但是当我从命令行调用jar文件时,什么都没有发
public class Test {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
我使用Eclipse的“Export to runnable JAR”函数将其转换成一个可执行的JAR文件(test.JAR)。当我在Eclipse中运行这个程序时,它会输出“Hello World!”,但是当我从命令行调用jar文件时,什么都没有发生
我尝试过这样调用jar文件:
test.jar
test.jar -jar
没有任何产出
我有另一个程序也有副作用(除了输出到stdout之外),当执行副作用时(这告诉我jar文件确实被执行了),同样没有输出到命令行。我也尝试过使用stderr,但是没有什么区别。有人知道我怎样才能做到这一点吗
谢谢 您必须使用
java -jar test.jar
(必须将JRE的bin文件夹添加到路径中,才能从任何位置执行命令)
注意:我知道您是使用Eclipse创建JAR的,但您可能想知道,当您使用“test.JAR”调用JAR时,应用程序的启动会被传递给JAR文件的注册java处理程序,而JAR文件不会在命令行上下文中运行。
默认的jar处理程序不会打开基于控制台的系统。{out,err}文件处理程序,因为这意味着每个启动的jar文件都有一个cmd样式的窗口,这不是一个理想的情况。
前面的答案是使用java-jar test.jar,它将在当前cmd窗口的上下文中运行,因此您将看到输出。前面的答案是正确的,因此我将稍微澄清一下“可执行jar”的概念。 在“可执行jar”中,没有“可执行jar”(相当于windows中的exe文件)这样的东西。在“可执行jar”中,您将只指定“入口”点(默认情况下您希望执行的主类) jar基本上只是一个归档文件,您仍然需要java来实际启动jar(java-jar-your.jar) 事实上,在windows中,您可能与javaw.exe有关联,这意味着当您双击jar时,操作系统将启动它,就像用记事本自动打开.txt文件一样,它不会使.txt成为可执行文件 请同时查看以下内容:
如何从命令行调用jar文件?您看到了什么输出(如果有的话)?最有可能的是jar文件没有执行。我更新了我的问题,以更清楚地指出我非常确定jar文件正在执行,并说明我如何调用它。我相信这个答案是正确的。仅执行“test.jar”可能会使用“javaw.exe”,这是默认情况下与.jar文件关联的“java.exe”的无控制台版本。JRE将自己安装在Windows pr默认路径中,因此“java.exe”应在此后立即可用。