2

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

4

5 回答 5

5

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

于 2013-09-18T06:06:53.547 回答
0

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

如果您的代码没有依赖项,则无需设置类路径。

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

  1. 指定在何处查找您的类在运行时需要的第三方和用户定义文件(*.jar、*.class、*.properties 等)。

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

于 2014-10-29T19:24:56.147 回答
0

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

干杯

于 2013-09-18T06:47:28.130 回答
0

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

我们要不要?我不。

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

所以 JVM 知道它可以在哪里找到这些类。

于 2013-09-18T06:20:16.210 回答
-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;
于 2013-09-18T06:16:39.613 回答