我无法在 Java 中设置永久路径

I can't set a permanent path in Java

我最近创建了我的第一个 Java 文件并尝试在 cmd 中编译它,但是每当我这样做时,我都必须设置文件的特定路径。设置文件的正确路径后,javac 可以正常工作。但是,这对我来说非常烦人且耗时。我对此做了一些研究,我认为如果我在 'system variables' 中设置一个永久路径,那么我将永远不必再次设置相同的路径。

然而,即使我在系统变量中设置了文件位置的路径(位置是正确的),javac 仍然returns “找不到文件”。

javac不能做你想做的,不能像你描述的那样用'system variables'。但这不是问题 java 程序员通常 运行 进入:

  1. 如果你真的想在命令行上用 shell 编译,哎呀,这不是正常的方法(那是使用智能编辑器和构建系统),但是.. 只需在正确的目录(包含 'YourApp.java' 的目录)中打开一个终端,您只需键入 javac YourApp.java,就可以了。

  2. 如果你的项目比较复杂,你坚持在命令行javac,做一个shell脚本。

  3. 更常见的是,您有一个智能编辑器,例如 Eclipse 或 Intellij。即使您不这样做,大多数 'dumb' 编辑器仍然有一个菜单选项可以 运行 当前文件的命令。为 javac 添加一个条目,瞧,你现在距离编译代码只有 1 个组合键了。

是的,您必须指定所有文件的路径。但是,有些事情可能会让您更轻松。例如,javac 带有通配符,因此在移动到包含所有源文件的目录后,您可以 运行 javac *.java 来编译它们。但是,这不会递归地应用于子文件夹。但更合适的解决方案是:

使用构建系统。

构建系统旨在让您更轻松、更快速地构建应用程序。这是大多数开发人员使用的。有很多不同的,但最常见的是 Gradle, Maven and Ant. There are also build systems included in many IDE's (Integrated Development Environment, i.e. a flashy text editor with some development tools) such as IntelliJ or Eclipse强烈建议在开发时使用IDE。

自己写一个构建系统

简单的构建系统不一定很复杂。最愚蠢的简单解决方案是将所有必须输入终端的命令用于构建应用程序,然后将它们放入 batch/shell 脚本中。这取决于您使用的操作系统,但这里有一些示例:

MacOS/Linux,另存为build.sh.

cd /Users/you/Programming/MyProject
javac Main.java File1.java File2.java
java Main

Windows,另存为build.bat.

cd C:\Documents\Programming\MyProject
javac Main.java File1.java File2.java
java Main

然后你可以 运行 它们用 ./build.shbuild.bat 编译。

如果您使用 MacOS/Linux,您可能需要使用 chmod +x build.sh 更改文件的权限。