当前位置: 首页 > 面试题库 >

可执行jar中的“ System.out.println()”会怎样?

柳威
2023-03-14
问题内容

假设我已经executable jar从使用过的代码中创建了

System.out.println()

当我们运行可执行jar时,没有控制台。那么,这条线怎么办?如何java处理这种情况?

编辑01

注意 :这种情况是我既不使用控制台运行jar也不以任何方式将任何控制台与其关联。

编辑02 :使事情更清楚:

我知道什么都不会打印,因为没有控制台..!我想知道java在这种情况下如何处理这条线?生成可执行jar的字节码时,是否省略此行?还是在没有控制台的情况下忽略了这一行?还是什么


问题答案:

在可执行的jar文件中运行代码没有什么特别的。如果您从控制台运行它,例如,java -jar foo.jar输出仍将进入控制台。

如果您以某种不附加控制台的方式运行代码(例如,javaw在Windows上,这是与可执行jar文件关联的默认程序),则输出将无处可去。它不会引起任何错误-
文本只会丢失。

请注意,在这种情况下,如果你使用的System.console()不是, 将返回null。所以:

System.out.printf("Foo%n"); // No problem. Goes nowhere.
System.console().printf("Foo%n"); // Would throw a NullPointerException.


 类似资料:
  • 问题内容: 我正在使用Datanucleus和JDO开发用于嵌入式H2数据库的桌面应用程序。当我从Eclipse运行它时,一切正常,但是当我尝试用它制作可执行jar时,它将停止工作。我收到以下错误: org.datanucleus.exceptions.NucleusUserException:已指定持久性进程使用名称为“ jdo”的ClassLoaderResolver,但DataNucleus

  • 我在Eclipse中有一个maven项目。在src/main/resources下,我有一个名为“directoryToCopy”的目录,其中包含文件。一旦我运行了我的项目,我想将“directoryToCopy”复制到桌面上的本地目录“localDirec”下。 我用了这个: 这在本地工作正常,但是当我想将其作为可执行jar文件运行时,我会得到NullPointerException。 请问有什

  • 我在Netbeans IDE 8.0.1中编写了一个名为SampleChat的Java GUI程序,并使用“Clean and Build”函数创建了一个jar文件。 我转到Netbeans创建的'dist'目录,双击它生成的jar文件。打开一个cmd窗口,其行如下: 我打算从一个U盘共享程序,所以它是至关重要的,唯一的要求是一个JVM,鼠标,也许一些手指来双击它。 我想出的一个尴尬的解决方案是编

  • 所以一切都很好,就像2到3周前一样,突然我所有的jar文件都无法通过双击打开 我检查了我的注册表,但一切正常,关联的. jar应用程序可以使用javaw运行,但我仍然无法双击运行可执行的. jar文件 我可以用javaw -jar文件名在cmd中运行它们.jar但它不适用于我的世界,我不能用那个cmd运行我的世界,我想让它,所以每个可执行文件.jar文件都可以打开双击 我的 java 命令在 cm