为什么Java在运行时需要classpath

时间:2013-09-18 06:05:17

标签: java jvm classpath

在Java中,我们在编译时设置类路径来编译Java文件,但为什么我们需要在运行时设置类路径? JVM需要类路径运行.class文件的具体原因是什么?

5 个答案:

答案 0 :(得分:5)

类路径上的文件提供了JVM需要运行的实际可执行代码(在Java .class文件中)。

答案 1 :(得分:0)

  

在Java中,我们在编译时设置类路径以编译Java文件

我们呢?我没有。

  

但为什么我们需要在运行时设置类路径?

因此JVM知道它可以在哪里找到类。

答案 2 :(得分:0)

我看到的原因之一是,如果我出于某些原因需要将我的应用程序所需的库分散在多个挂载点/驱动器/分区甚至文件夹中,我将无法指定JVM所在的位置我的代码是。作为一种解决方法,JVM可以在整个文件系统和索引中查看,但是效率/速度有多快?

干杯

答案 3 :(得分:0)

通常人们认为编译可以创建一个独立的应用程序而无需指向依赖项。但事实并非如此。

如果您的代码没有依赖关系,那么您不需要设置类路径。

您可能需要/想要在运行时包含-cp:

  1. 指定在运行时(* .jar,* .class,* .properties等)查找类所需的第三方和用户定义文件的位置。

  2. 覆盖CLASSPATH环境变量设置的内容。

答案 4 :(得分:-1)

CLASSPATH 是Java虚拟机用于查找类文件(包括主类)的环境变量。

或者,您可以将 -cp -class-path 作为参数传递给JVM,以指定主类所依赖的类路径。

例如,

export CLASSPATH=/opt/javatv:/opt/mhp:/opt/main-class;
java MainClass

(或)

java -cp /opt/javatv;/opt/mhp;/opt/main-class MainClass;

(或)

java -class-path /opt/javatv;/opt/mhp;/opt/main-class MainClass;