运行非GUI Jar文件

时间:2014-07-13 16:00:46

标签: java

我知道我可以从命令行运行非GUI jar文件。有没有什么办法可以通过点击或其他东西而不是一次又一次地写命令来实现。有没有软件可以这样做。 (我说的是一个编译过的jar并且不想从任何ide运行)

2 个答案:

答案 0 :(得分:1)

public static final String TITLE = "CONSOLE title";
public static final String FILENAME = "myjar.jar";
public static void main(String[] args) throws InterruptedException, IOException {
    if(args.length==0 || !args[args.length-1].equals("terminal")) {
        String[] command;
        if(System.getProperty("os.name").toLowerCase().contains("win")) {
            command = new String[]{"cmd", "/c", "start \"title \\\""+TITLE+"\\\" & java -jar \\\""+new File(FILENAME).getAbsolutePath()+"\\\" terminal\""};
        } else {
            command =new String[]{"sh", "-c", "gnome-terminal -t \""+TITLE+"\" -x sh -c \"java -jar \\\""+new File(FILENAME).getAbsolutePath()+"\\\" terminal\""};
        }
        try {
            Process p  = Runtime.getRuntime().exec(command);
            p.waitFor();
        } catch(Throwable t){
            t.printStackTrace();
        }
    } else {
        //THERE IS YOUR CONSOLE PROGRAM:
        System.out.println("Hey! What's your name?");
        String read = new BufferedReader(new InputStreamReader(System.in)).readLine();
        System.out.println("Hey, "+read+"!");
        Thread.sleep(10000);
    }
}

您可以双击.jar文件来运行它。别忘了MANIFEST.MF! :)(也在Linux上工作!)

示例(我只双击了jar文件): Example

答案 1 :(得分:0)

Java的目的是在您需要的jar上调用java -jar XXXX.jar。缺点是您无法指定类路径,因此所有类都应该在那里。

打包应用程序的一种更酷的方法是使用Java WebStart。通过该用户,用户可以通过单击Web浏览器来安装应用程序。点击http://docs.oracle.com/javase/8/docs/technotes/guides/javaws/developersguide/contents.html