Java - 如何在Windows中运行控制台程序

时间:2014-02-15 10:24:13

标签: java linux windows macos

您好我在Java上写了wordquiz程序。在Unix中使用Eclipse。 在我的linux机器上它工作正常。 这是源代码https://github.com/HighlanderGe/Words 因此,只使用基本包。 在windows中编译像jar这样的代码不运行。在Mac中都没有。 我猜想问题是在linux中它是从控制台运行的,而控制台对于Linux来说是非常原生的,但在Windows中我认为在Mac中也应该调用cmd,并从那里以某种方式运行..但是我敢打赌cmd不知道什么是java。它需要一些java控制台吗?

2 个答案:

答案 0 :(得分:1)

问题不在于Mac或Windows,问题是您没有在Eclipse中以相同的方式在不同的计算机上设置工作区。

您可以以相同的方式在所有环境中的命令行上构建程序。你只需知道正确的步骤。

首先,WordDatabase中第25行的代码出错。而不是:

dictionary = new ArrayList<>();

它应该是:

dictionary = new ArrayList<String>();

之后,您可以像这样构建代码:

javac -d . *.java

然后像这样运行:

java wordquizz/Wordquizz

这应该适用于任何具有Java的系统,您只需要弄清楚如何在Eclipse中以相同的方式在不同的计算机上设置工作区。

<强>更新

我将您的项目分叉并转换为Maven项目:

https://github.com/janosgyerik/StackOverflow-Words

将其克隆到PC后,可以使用文件|导入Eclipse导入... 菜单,然后现有Maven项目选项。它应该适用于所有操作系统。

Maven是用于构建Java项目的推荐工具,这是一件好事。安装maven后,可以使用以下命令构建项目:

mvn compile

您可以将项目打包到jar文件中,其中包含:

mvn package

您可以使用以下任一命令运行代码:

# needs 'mvn compile' first to generate classes
java -cp target/classes/ wordquizz.Wordquizz

# needs 'mvn package' first to generate the jar
java -cp target/wordquizz-1.0-SNAPSHOT.jar wordquizz.Wordquizz 

如果您喜欢这些改进,请尽快合并我的回购。我不会永远保留它,我会在某个时候删除它。

更新2

要使jar可执行,您需要在清单文件中添加如下:

Main-Class: wordquizz.Wordquizz

使用如下命令创建jar文件:

jar cvfm package.jar manifest.txt wordquizz/*.class

我更新了我的GitHub存储库,现在如果你运行mvn package,它将自动添加正确的清单,生成的jar文件将是可执行的。

答案 1 :(得分:0)

如果您在Windows下安装了java,则必须调整Path-variable,因此cmd知道java可执行文件的位置。关于如何设置它的好教程,你可以在这里找到:

http://docs.oracle.com/javase/tutorial/essential/environment/paths.html

之后,您可以简单地转到源代码所在的目录,并使用与linux下相同的命令来编译和运行您的应用程序。