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