8

我将首先说我在 Windows 7 上。

我创建了一个 .jar 文件,该文件使用 -java -jar myJar.jar 方法从命令行正常执行

但我想要的是能够双击 jar 文件并让它打开命令提示符窗口并在命令提示符下运行,就好像我刚刚输入了 java -jar myJar.jar 行一样。

当我双击 jar 文件时,我确实认为它正在运行,因为出现了 java 的可视部分,但是没有命令提示符窗口显示我的控制台输出。

环顾四周后,我遇到有人说与 jar 文件相关联的 javaw 没有控制台,我需要将 jar 文件与 java.exe 而不是 javaw.exe 相关联。我已经尝试过了,但它似乎没有用。

任何人都可以帮忙吗?一步一步来就好了。

4

8 回答 8

9

我也有同样的问题,bat 文件的想法是天才,为我节省了大量重写代码的时间。谢谢!(我会投票,但显然我没有足够的代表。)

批处理(或 Bat)文件非常容易制作。

只需将其java -jar YourFile.jar放入记事本(如果您在 Windows 上),另存为Title.bat,然后放入与您的 jar 相同的文件夹中。

快!公众可以打开的程序。

于 2013-05-31T09:04:01.657 回答
2

恕我直言,这是不可能的。您可以从应用程序本身打开控制台,但这取决于操作系统。如果您需要打开控制台,您必须像以前一样从它运行应用程序。

于 2013-05-14T12:39:54.437 回答
1

这是初学者最简单的解决方案:

  1. 打开任何文本编辑器
  2. 写下这两行:

      java "yourmainclassname"
      pause
    
  3. 将该文件另存为“名称”.bat

  4. 从 Windows GUI 双击运行它

(当然,这个新创建的 .bat 文件必须与 .class 位于同一文件夹中)

于 2015-04-13T10:40:37.650 回答
1

或者,我建议使用以下内容创建一个 bat 文件:

java -jar yourjar.jar

这将启动您的 jar 并自动打开命令提示符,只需双击 bat 文件即可。(bat文件需要和你的jar文件在同一个文件夹,否则你需要指定jar的路径,而不仅仅是jar名)

于 2013-05-14T14:00:11.690 回答
1

我会做这样的事情:

(在带有 JRE 1.6 的 Widows XP 中进行了测试,为了支持其他操作系统,您应该验证每个操作系统的路径并选择适当的控制台模拟器(xtermgnome-terminal...(检查存在和首选项...))

public static void main(String[] args) throws Exception {
    if (args.length == 0) {
        String path = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath().substring(1);//Adds extra slash (??) didn't know why
        String decodedPath = URLDecoder.decode(path, "UTF-8");
        System.out.println(decodedPath);
        Runtime.getRuntime().exec("cmd /c start java -jar \"" + decodedPath + "\" actual_run");
    }
    else {
        System.out.println("Hello World");
        JOptionPane.showMessageDialog(null, "Hello World");
        System.in.read();
    }
}
于 2013-05-14T13:20:22.927 回答
1

如果要显示命令行,则必须使用命令行启动 jar。

java -jar MyJar.jar

于 2013-05-14T12:37:17.780 回答
0

检查您的 MANIFEST.MF

  1. 将“可执行”jar 文件提取到文件夹中
  2. 在 META-INF 文件夹中找到 MANIFEST.MF
  3. 检查此字段是否存在: Main-Class: YourMainClassHere

如果此字段消失,则为此打开原始 MANIFEST.txt: Main-Class: YourMainClassHere必须以换行符或回车符结尾

警告:文本文件必须以换行符或回车符结尾。如果最后一行没有以新行或回车结束,则不会正确解析。

于 2013-06-14T23:26:45.163 回答
0

..但是没有显示我的控制台输出的命令提示符窗口。

不,不会有一个可执行 Jar 的控制台。您需要将该输出放在 GUI 中。

于 2013-05-14T12:35:59.827 回答