要在OS命令行上运行的基本Eclipse控制台应用程序

时间:2017-02-03 15:58:34

标签: java cmd console executable-jar

我正在准备101个Java编程课程考试的介绍,所以我基本上刚开始编写随机程序。现在我提出了编写一个程序的想法,它会自动生成一个给定字母表中的随机密码,将其保存在桌面上的新文本文件中,并附带其他信息,然后自动重新打开它。

我写了4个类,其中一个名为" Application.java",这是我的主要方法所在的位置。该程序在Eclipse控制台中完美运行。

我的目标是让这个程序在任何给定的计算机上运行,​​因此我将其导出到可执行jar 文件中。它现在应该从操作系统打开命令行,允许用户从那里输入(我使用System.in作为标准输入)。

现在这显然没有用,控制台甚至没有打开,双击jar文件时没有任何事情发生。我做了一些研究,发现了一个有趣的代码片段,这将允许我在Windows中的CMD命令行上运行我的程序:

public static void main (String [] args) throws IOException, InterruptedException, URISyntaxException{

    Console console = System.console();

    if (console == null && !GraphicsEnvironment.isHeadless()){
        String filename = Main.class.getProtectionDomain().getCodeSource().getLocation().toString().substring(6);
        Runtime.getRuntime().exec(new String[]{"cmd","/c","start","cmd","/k","java -jar \"" + filename + "\""});
    } else {
        Application.main(new String[0]);
        System.out.println("Program has ended, please type 'exit' to close the console");
    }
}

然而,这仍然不起作用,CMD打开,但随后显示:
"错误:无法访问jarfile C:/Users/MYUSERNAME/Documents/Java%20Experimente/Password%20Generator.jar"

我在名为" Main.class"的类中实现了这个函数。并将其导出为jar,此方法是将要运行的主要方法。

由于我刚刚开始编码,遗憾的是我不完全理解上面提供的代码片段中发生了什么。有人可以帮助我理解它或者试图帮助我找到问题的解决方案吗? 提前谢谢。

0 个答案:

没有答案