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

是我的Jar双击还是从命令行启动?

殳宸
2023-03-14
问题内容

My Jar文件支持单击和从命令行启动。

仅当通过检查有可用的图形环境时,才显示GUI GraphicsEnvironment.isHeadless()

如果用户双击jar文件,我希望能够将日志打印到磁盘上的文件,如果从命令行启动,则将它们打印到控制台。

我无法找到答案,是否存在任何跨平台环境变量,或者我可以查看的其他内容,以了解用户是否使用 java -jar app.jar
启动了我的程序,或者他们是否双击了。 jar文件?


问题答案:

一种方法是确定控制台何时为空:

public static void main(String[] args) {
    Console console = System.console();
    if(console!=null){
        System.out.println("Console is not null");
    }else{
        System.out.println("Console is null");
    }
}

尝试使用以下命令从命令行运行代码:

java -jar [your_runnable_file.jar]


 类似资料:
  • 问题内容: 我想在控制台中显示消息或弹出窗口,因此如果未指定参数,我想知道应该向哪个显示 就像是: 问题答案: 直接的答案是您无法确定JVM是如何启动的。 但是对于问题中的示例用例,您实际上并不需要知道如何启动JVM。您 真正 需要知道的是用户是否会看到一条写入控制台的消息。这样做的方式将是这样的: Console的javadoc 虽然不漏水,但强烈暗示Console对象(如果存在)会写入控制台,

  • 问题内容: 我有一个包含以下代码的Java桌面应用程序: 当我通过执行“ java -jar name.jar”运行此应用程序的相应.jar文件时,check1和check2均被打印,并且应用程序正常运行。但是,当我尝试通过双击.jar文件运行jar时,我发现ToolProvider.getSystemJavaCompiler()返回null。不会打印“ check2”。我没有从editor.ru

  • 当我通过执行“java-jar name.jar”来运行这个应用程序的相应的。jar文件时,check1和check2都会被打印出来,app工作正常。但是当我试图通过双击。jar文件来运行jar时,我发现ToolProvider.getSystemJavaCompiler()返回null。“check2”不打印。我没有从compiler.run()中得到正确的结果。 我确实将注册表项“\hkey_

  • 环顾四周之后,我发现有人说jar文件所关联的javaw没有控制台,我需要将jar文件与java.exe而不是javaw.exe关联。我试过这个,似乎不起作用。 有人能帮忙吗?一步一步就好了。

  • 问题内容: 我正在寻找一种使用PHP的方法,以检测脚本是从外壳上的手动调用运行的(我登录并运行该脚本),还是从crontab条目运行。 我有各种用php编写的维护类型脚本,这些脚本已设置为在crontab中运行。有时,我需要提前手动运行它们,或者如果发生故障/损坏,则需要运行几次。 这样做的问题是,每次手动运行脚本时,我也不想发生某些任务(发布到Twitter,发送电子邮件等)时需要设置的外部通知

  • 问题内容: 因此,我一直在编写一个简单的3D GUI应用程序,旨在让用户只需双击JAR文件即可使用。在将其放入JAR文件之前,它可以正常工作,并且在命令提示符下运行时(在jar文件的目录中键入“ java -jar Modeler.jar”),可以在JAR文件中使其完美运行。但是,当我双击它时,什么也没有发生。它运行完美,没有命令提示符下的错误。我从经验中知道,没有显示启动时的崩溃报告,因为控制台