【问题标题】:Runnable Jar file is not running on double clickRunnable Jar 文件在双击时未运行
【发布时间】:2016-01-27 00:57:28
【问题描述】:

我有一个简单的 Java 项目,其中有一个文件 Input.java。 Input.java 的代码是这样的 -

package com.src.functionalities;

import java.util.Scanner;

public class Input {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner reader = new Scanner(System.in);  // Reading from System.in
        System.out.println("Enter a number: ");
        int n = reader.nextInt(); // Scans the next token of the input as an int.
        System.out.println("You have provided : " + n);
     }

    }

现在,我在 Eclipse 中通过 Export -> Jar -> Executable jar file 创建了一个可执行 jar 文件,并将该 jar 文件命名为 test.jar。

现在,当我尝试通过命令提示符打开它时,它工作得非常好。

java -jar test.jar

但是,当我双击可运行的 jar 文件时,我希望打开命令提示符。 这里有什么问题?

谢谢!

【问题讨论】:

  • 通过双击执行取决于您的操作系统对以 .jar 结尾的文件的设置。这与java无关。
  • 感谢您的评论。我正在使用 Windows 7、64 位。有什么办法可以解决吗?
  • 验证您的 jar 是否正在运行或未打开您的任务管理并发现 javaw 进程将运行(window os)。
  • 在 Windows 中,您可以将 java -jar test.jar 包装在批处理文件中
  • 创建exe文件或右键->打开方式->选择java

标签: java jar executable-jar


【解决方案1】:

这是因为 JVM 期望应用程序具有 GUI,但您的应用程序严格来说是控制台应用程序。如果你没有 GUI,什么都不会发生,因为 JVM 通常不会调用 Windows 控制台。

为您的 jar 制作一个批处理文件,或者您可以查看将 Java 应用程序作为 exe 文件分发的软件,为您制作批处理文件,例如 Install4j

【讨论】:

  • install4j 既不是免费的也不是免费的。它没有提供比现有解决方案更多的东西,尤其是 launch4j 和 IzPack。编写一个包含单个命令行的 bat 脚本并不难。
  • @gouessej 有 90 天的评估期,对于学生/自学者来说已经足够了。
  • 它是一个专有的黑匣子,它不会对学生/自学者学到任何东西,而有大量工具可以做类似的事情,one-jar、PackR、JarMatey、几个基于 Maven、Gradle -基于和基于 Ant 的解决方案,几个 IDE 中的一些内置功能,......此外,他的程序是初级的。当他成功打开控制台并使用脚本在其中运行 Java 时,他只需在其 JAR 中调用此脚本或提供包含 JAR 和脚本的存档。使用 install4j 做到这一点就像使用热核弹杀死苍蝇一样。
猜你喜欢
  • 1970-01-01
  • 2011-08-02
  • 2021-12-26
  • 1970-01-01
  • 2022-10-06
  • 2018-12-21
  • 1970-01-01
  • 2012-02-25
  • 2014-09-24
相关资源
最近更新 更多