Java make jar文件

时间:2014-12-22 18:54:25

标签: java jar

鉴于以下课程:

public class Menu {
    public static void main(String[] args) {
        System.out.println("hi");
    }
}

我想运行jar文件,但在创建之后我点击menu.jar但它没有运行。这是为什么?

4 个答案:

答案 0 :(得分:3)

如果双击一个jar文件,javaw用于启动jar文件。 javajavaw之间的主要区别在于后者未附加到控制台,因此您将看不到System.out.println语句的输出。

你可以尝试这两件事:

1。改为创建一个框架

import javax.swing.*; 

public class Menu {
    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable(){
            public void run(){
                JFrame frame = new JFrame( "Hi!" ); 
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
                frame.setVisible( true ); 
            }
        } ); 
    }
}

2。从控制台运行jar(不要双击)

$> java -jar your-file.jar
hi

答案 1 :(得分:2)

按照页面http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

中所述的说明进行操作

首先,你需要在META-INF文件夹中有Manifest.FM文件,并且在提到的文件中你需要设置Main-Class:classname

答案 2 :(得分:1)

创建JAR

创建.jar文件时,必须确保.jar文件知道要运行的程序。这是通过Main-Class文件中MANIFEST.MF文件夹中META-INF文件中的.jar条目完成的。较新版本的jar工具支持选项-e来完成这项工作。

以下Makefile显示了如何运行各种命令:

.PHONY: all
all: run

.PHONY: run
run: Hello.jar
        java -jar Hello.jar

Hello.jar: Hello.class
        jar cvfe Hello.jar Hello Hello.class

Hello.class: Hello.java
        javac Hello.java

请注意,Makefile不是构建和运行Java程序的典型方法。我这里只使用Makefile因为它方便显示为不同的东西执行的裸机命令。通常会使用 Apache Maven mvn Apache Ant antgradle来自动化Java应用程序的构建过程。

正在运行的罐子

当您运行.jar文件时,根据您启动它的位置(即Windows资源管理器),它实际上可能没有连接终端。 System.out是JVM进程的stdout,如果它没有附加到终端,则该消息将不会在屏幕上显示,它将无处可寻(NIL:在Windows上,UNIX上的/dev/null

有两种选择:

  • 从终端启动jar文件,即运行cmd.exexterm或类似的东西,然后使用cd *dirOfJarFile*然后java -jar *menu.jar*运行jar文件。< / LI>
  • 改用GUI。

我现在推荐第一个选项。

GUI示例代码

import javax.swing.*;

public class HelloSwing {
    public static void main(final String... args) {
        final JFrame frame = new JFrame("Hello");
        frame.getContentPane.add(new JLabel("Hello, world!"));
        frame.pack();
        frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        frame.setVisible(true);
    }
}

答案 3 :(得分:0)

在Windows上打开CMD.exe或在Mac上打开终端并输入以下代码:

java -jar path-to-your-jar-file.jar

例如:

java -jar C:\MyAwesomeJarFile.jar

它应该在控制台中打印Hi