Java 爪哇语-cp";选项,编译时还是运行时?

Java 爪哇语-cp";选项,编译时还是运行时?,java,classpath,Java,Classpath,我看到人们说有不同类型的类路径。例如编译时类路径和运行时类路径 我猜与javac一起使用时,“-cp”或“-classpath”选项是编译时类路径 当与java命令一起使用时,它应该是运行时类路径。我说得对吗 这两个类路径可以完全不同吗 我猜与javac一起使用时“-cp”或“-classpath”选项是 编译时类路径 是的,那是真的 从: JDK工具java、jdb、javac和javah都有一个-classpath选项 它替换类路径指定的一个或多个路径 工具运行时的环境变量。这是推荐的方法

我看到人们说有不同类型的类路径。例如编译时类路径和运行时类路径

我猜与
javac
一起使用时,
“-cp”
“-classpath”
选项是编译时类路径

当与
java
命令一起使用时,它应该是运行时类路径。我说得对吗

这两个类路径可以完全不同吗

我猜与javac一起使用时“-cp”或“-classpath”选项是 编译时类路径

是的,那是真的

从:

JDK工具java、jdb、javac和javah都有一个-classpath选项 它替换类路径指定的一个或多个路径 工具运行时的环境变量。这是推荐的方法 用于更改类路径设置的选项,因为每个应用程序都可以 拥有所需的类路径,而不干扰任何其他 应用程序

运行时工具java也有一个-cp选项。此选项是一个 -classpath的缩写。

对于非常特殊的情况,java和javac都有一些选项可以让您 更改他们用于查找自己的类库的路径。浩瀚 然而,大多数用户将永远不需要使用这些选项

我猜与javac一起使用时“-cp”或“-classpath”选项是 编译时类路径

是的,那是真的

从:

JDK工具java、jdb、javac和javah都有一个-classpath选项 它替换类路径指定的一个或多个路径 工具运行时的环境变量。这是推荐的方法 用于更改类路径设置的选项,因为每个应用程序都可以 拥有所需的类路径,而不干扰任何其他 应用程序

运行时工具java也有一个-cp选项。此选项是一个 -classpath的缩写。

对于非常特殊的情况,java和javac都有一些选项可以让您 更改他们用于查找自己的类库的路径。浩瀚 然而,大多数用户将永远不需要使用这些选项


java
javac
命令接受
-cp
-classpath
。。。意思是一样的

从前,
javac
只接受
-classpath


这两个类路径[由java和javac使用]会完全不同吗

他们可能是。但是,如果使用一个API版本编译并使用另一个API版本运行,则可能会遇到导致运行时错误的“二进制兼容性”问题

因此,建议在编译时和运行时使用相同(或等效)的类路径


为什么相同的内容要重复两次

因为内容(类路径)没有被编译到代码中


更深层次的回答是,Java程序通常由独立编译的组件(如库)组成,然后在运行应用程序时将这些组件组合在一起。每个组件构建都需要不同的类路径。。。根据它的依赖关系。当您将所有的部分放在一起时,可能需要一个不同的类路径。因此,需要能够在编译和运行时以不同的方式指定类路径。
java
javac
命令接受
-cp
-classpath
。。。意思是一样的

从前,
javac
只接受
-classpath


这两个类路径[由java和javac使用]会完全不同吗

他们可能是。但是,如果使用一个API版本编译并使用另一个API版本运行,则可能会遇到导致运行时错误的“二进制兼容性”问题

因此,建议在编译时和运行时使用相同(或等效)的类路径


为什么相同的内容要重复两次

因为内容(类路径)没有被编译到代码中

更深层次的回答是,Java程序通常由独立编译的组件(如库)组成,然后在运行应用程序时将这些组件组合在一起。每个组件构建都需要不同的类路径。。。根据它的依赖关系。当您将所有的部分放在一起时,可能需要一个不同的类路径。因此,需要能够在编译和运行时以不同的方式指定类路径

我猜与javac一起使用时“-cp”或“-classpath”选项是编译时类路径

没错

这两个类路径可以完全不同吗

这两者最好是一样的

否则,如果您可以得到一个错误,如果某个类在编译时存在(并且在代码中实际使用过),但在运行时丢失

只有在编译时将类添加到类路径中时,类路径才能不同,而类路径在源代码中没有使用。在这种情况下,可以跳过将它们添加到运行时类路径

但是,我建议您保持classpath中没有不需要的类/库

我猜与javac一起使用时“-cp”或“-classpath”选项是编译时类路径

没错

这两个类路径可以完全不同吗

这两者最好是一样的

否则,如果您可以得到一个错误,如果某个类在编译时存在(并且在代码中实际使用过),但在运行时丢失

只有在编译时将类添加到类路径中时,类路径才能不同,而类路径在源代码中没有使用。在这种情况下,可以跳过将它们添加到运行时类路径

但是,我建议您保持类路径中没有不需要的类/库。

我猜“-cp”或“-classpath”选项