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

标签 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 控制台吗?

最佳答案

问题不在于 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/

相关文章:

c++ - NVidia NVML nvmlDeviceGetMemoryInfo() 立即加载和卸载 nvapi64.dll

windows - 使用 IIS 和应用程序池的 WCF Windows 身份验证

windows - 在 msysgit 中使用 virtualenvwrapper-win (sh.exe": mkvirtualenv: command not found), 在正常的 cmd 中工作

java - 简单的 CMS 功能,例如 WordPress

linux - svn2git kde 规则错误 - 转换标签

java - 如果 JTextFeild 在 JFrame 中,则 JTextPane select() 不起作用

Linux命令列出带数字的文件名?

c++ - 如果您在进程崩溃后为其分配内存会怎样?

java - HTTP 500 内部服务器错误 : while containerizing my java web app

java - Jface:如何强制Listviewer调整大小