请向我解释课程路径,就像我10岁那样。
当我使用javac编译程序时,我通常会转到主类所在的根文件夹:
javac Test.java
它编译程序和子目录中的所有类。对于上面的例子:
C:\newApp\
--->这是主类(Test.java)所在的文件夹。
C:\newApp\com\example\class
--->这是其他一些类的文件夹。
javac使用该单个命令编译所有java文件。为它们制作.class文件。
现在我可以用以下方式运行应用程序:
java Test
什么是classpath?在这种情况下,classpath究竟是什么?我应该怎么知道classpath?使用IDE时,是否需要设置它?
答案 0 :(得分:8)
假设您的命令提示符的当前目录为C:\newApp
,并且Test
中有一个名为C:\newApp\Test.java
的类。
类路径只是程序可能需要使用的位置或可以找到类文件的位置集。类路径包括文件夹,JAR和(在某些更复杂的设置中)其他类文件源。
当Java需要加载一个类时,它会在类路径中查找它。默认的类路径是包含Java内置类的Jars集合,以及shell提示符的当前目录(在本例中为C:\newApp
)。
当您尝试加载一个类时,请说com.example.MyClass
,Java将在您的类路径中查找位置C:\newApp\com\example\MyClass.class
。您可以通过将JAR放在类路径上来告诉它从JAR(只不过是带有.jar文件扩展名的ZIP存档)中获取类。它会查看jar内部并根据需要从那里“解压缩”类。
使用IDE时,通常不必担心类路径。 IDE将在运行时自动将您的代码自动放入类路径中。如果要使用外部库中的代码,只需要告诉IDE将其添加到项目中(通常将其放入项目文件夹并在文件列表中右键单击它)。然后它会知道它的自动完成功能应该包括来自该Jar,和的可用类,在运行项目时Jar将被放置在类路径上。
答案 1 :(得分:2)
class-path通常是进程查找资源的路径列表(可以是类,可执行文件,XML文件或其他任何内容)。当您使用Eclipse之类的IDE时,通常会为您设置类路径,只要您包含IDE本身的所有内容(例如:添加外部jar交互)。
来自oracle:
类路径是Java运行时环境搜索类和其他资源文件的路径。可以在调用JDK工具(首选方法)时使用-classpath选项或通过设置CLASSPATH环境变量来设置类搜索路径(更常见的是较短名称“类路径”)。 -classpath选项是首选,因为您可以为每个应用程序单独设置它,而不会影响其他应用程序,也不会修改其值的其他应用程序。
这是在类路径中设置多个文件夹以查找目录C:\java\MyClasses
中的类文件以及C:\java\OtherClasses
中的类的链接示例:
C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses ...