[英]Why Java needs classpath at runtime
在Java中,我们在编译时设置类路径以编译Java文件,但是为什么我们需要在运行时设置类路径? JVM为什么需要classpath来运行.class
文件的任何特定原因?
类路径上的文件提供了JVM需要运行的实际可执行代码(在Java .class
文件中)。
在Java中,我们在编译时设置类路径以编译Java文件
我们要不要? 我不。
但是为什么我们需要在运行时设置类路径?
因此,JVM知道可以在哪里找到这些类。
我看到的原因之一是,如果出于某种原因需要将应用程序所需的库分散在多个安装点/驱动器/分区甚至文件夹中,则无法向JVM指定代码所在的位置。 作为一种解决方法,JVM可以遍历整个文件系统和索引内容,但是效率/速度如何?
干杯
通常,人们认为编译不需要独立就可以创建独立的应用程序。 但事实并非如此。
如果您的代码没有依赖项,则无需设置类路径。
您可能需要/想要在运行时包含-cp:
要指定您的类在运行时需要在哪里寻找第三方和用户定义的文件(* .jar,*。class,*。properties等)。
覆盖CLASSPATH环境变量所设置的内容。
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.