双击命令提示符中运行.jar文件

时间:2013-05-14 12:32:08

标签: java command-prompt executable-jar

我将首先在Windows 7上说我。

我创建了一个.jar文件,它使用-java -jar myJar.jar方法从命令行执行得很好

但我所追求的是能够双击jar文件并打开命令提示符窗口并在命令提示符下运行,就像我刚输入java -jar myJar.jar一样线。

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

环顾四周后,我发现人们说java文件与jar文件相关联,没有控制台,我需要将jar文件与java.exe而不是javaw.exe相关联。我试过这个,但似乎没有用。

有人可以帮忙吗?一步一步会很好。

8 个答案:

答案 0 :(得分:8)

我有同样的问题,蝙蝠文件的想法是天才,并节省了我很多时间重写代码。谢谢!(我会投票,但显然我没有足够的代表。)

批量(或蝙蝠)文件非常容易制作。

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

变!一个公众可以开放的程序。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

java -jar MyJar.jar

答案 3 :(得分: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();
    }
}

答案 4 :(得分:1)

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

java -jar yourjar.jar

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

答案 5 :(得分:1)

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

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

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

  4. 从Windows GUI双击运行
  5. (当然这个新创建的.bat文件必须与.class在同一个文件夹中)

答案 6 :(得分:0)

  

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

不可能不是可执行Jar的控制台。您需要将该输出放在GUI中。

答案 7 :(得分:0)

检查您的MANIFEST.MF

  1. 将“可执行”jar文件解压缩到文件夹
  2. 在META-INF文件夹中找到MANIFEST.MF
  3. 检查此字段的存在: Main-Class:YourMainClassHere
  4. 如果此字段消失,则打开原始MANIFEST.txt以获取此点: Main-Class:YourMainClassHere 必须以新行或回车结尾

    Warning: The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.