java - 我一辈子都无法理解类路径

标签 java classpath javac

请像我 10 岁一样向我解释类路径。

当我用javac编译一个程序的时候,我通常会去主类所在的根文件夹:

javac Test.java

它编译程序和子目录中的所有类。对于上面的例子:

C:\newApp\ ---> 这是主类(Test.java)所在的文件夹。

C:\newApp\com\example\class ---> 这是一些其他类所在的文件夹。

javac 使用该命令编译所有 java 文件。为他们制作 .class 文件。

现在我可以运行应用程序:

java Test

什么是类路径?在这种情况下,类路径到底是什么?关于类路径我应该知道些什么??使用IDE时,需要设置吗??

最佳答案

假设您的命令提示符的当前目录是 C:\newApp 并且名为 Test 的类位于 C:\newApp\Test.java.

类路径只是您的程序可能需要使用的可以找到类文件的位置或一组位置。类路径包括文件夹、JAR 和(在某些更复杂的设置中)类文件的其他来源。

当 Java 需要加载一个类时,它会在类路径中寻找它。默认类路径是包含 Java 内置类的 Jar 集,结合 shell 提示符的当前目录(在本例中为 C:\newApp)。

当您尝试加载一个类时,例如 com.example.MyClass,Java 将在您的类路径中查找,在位置 C:\newApp\com\example\MyClass.class 。您可以通过将所述 JAR 放在类路径中来告诉它从 JAR(无非是具有 .jar 文件扩展名的 ZIP 存档)中获取类。它会查看 jar 内部并根据需要从那里“解压缩”类。

使用 IDE 时,您通常不需要担心类路径。 IDE 会在运行时自动将您的 代码自动放入类路径中。如果你想使用来自外部库的代码,你只需要告诉你的 IDE 将它添加到项目中(通常是将它放入你的项目文件夹并在文件列表中右键单击它)。然后它将知道它的自动完成功能应该包括该 Jar 中的可用类,并且在运行您的项目时该 Jar 将被放置在类路径中。

关于java - 我一辈子都无法理解类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234522/

相关文章:

java - 使用 Ivy 的类路径问题

java - 如何消除错误 Picked up _JAVA_OPTIONS : -Xmx512M?

java - 当多个.java文件之间存在依赖关系时,我们是否需要按某种顺序编译它们?

java - 转换泛型类在 eclipse 中出现警告,但在 javac 中出现错误

java - Hibernate 4.3.6 + spring - 递归删除方法

java - 使用传递的字符串调用资源

java - CSVLoader--错误,不在 CLASSPATH 中?

java - Jenkins构建失败:javac file not found

java - 使用类构造函数设置数组值时出现 NullPointerException

java - 使用Android Studio 3.0发送短信