您好,我用 Java 编写了 wordquiz 程序。在 Unix 中使用 Eclipse。 在我的 linux 机器上它工作正常。 这是源代码 https://github.com/HighlanderGe/Words 因此,仅使用基本包。 在 windows 中,jar 等代码的编译不会运行。在 Mac 中都没有。 正如我猜测的那样,问题是在 linux 中它是从控制台运行的,而控制台对于 linux 来说是非常原生的,但是在 Windows 中,我认为在 Mac 中也是如此,应该调用 cmd,然后以某种方式从那里运行..但是我敢打赌 cmd 不知道什么是 java。那么它需要一些 Java 控制台吗?
最佳答案
问题不在于 Mac 或 Windows,问题在于您没有在 Eclipse 中以相同的方式在不同的计算机上设置工作区。
您可以在所有环境中以相同的方式在命令行上构建您的程序。您只需要知道正确的步骤即可。
首先,您在 WordDatabase
中第 25 行的代码中存在错误。而不是:
dictionary = new ArrayList<>();
应该是:
dictionary = new ArrayList<String>();
之后,您可以像这样构建您的代码:
javac -d . *.java
然后像这样运行它:
java wordquizz/Wordquizz
这应该适用于任何具有 Java 的系统,您只需要弄清楚如何在不同的计算机上以相同的方式在 Eclipse 中设置您的工作区。
更新
我将您的项目 fork 并转换为 Maven 项目:
https://github.com/janosgyerik/StackOverflow-Words
将其克隆到您的 PC 后,您可以使用文件 | 将其导入 Eclipse。 Import... 菜单,然后是 Existing Maven projects 选项。它应该适用于所有操作系统。
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 可执行,您需要在 list 文件中添加如下内容:
Main-Class: wordquizz.Wordquizz
您可以使用如下命令创建 jar 文件:
jar cvfm package.jar manifest.txt wordquizz/*.class
我更新了我的 GitHub 存储库,现在如果您运行 mvn package
,它会自动添加正确的 list ,并且生成的 jar
文件将是可执行的。
关于Java - 如何在 Windows 中运行控制台程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21796238/