默认情况下,类路径中的当前路径是`.`吗?

Tim*_*Tim 4 java ubuntu

第二个命令是否将当前路径添加为另一个搜索路径?

javac -cp /home/tim/program_files/programming/java/junit-4.11.jar MyTest.java

javac -cp .:/home/tim/program_files/programming/java/junit-4.11.jar MyTest.java
Run Code Online (Sandbox Code Playgroud)

这是通过冒号分隔多个路径的正确方法吗?

默认情况下,当前路径是否总是在ClassPath中,因此不需要显式指定?

谢谢.

Voi*_*icu 6

从Oracle 关于设置类路径的页面:

默认类路径是当前目录.设置CLASSPATH变量或使用-classpath命令行选项会覆盖该缺省值,因此如果要在搜索路径中包含当前目录,则必须包含".".在新设置中.

使用;了Windows和:类Unix操作系统作为分隔为多个路径.


rol*_*lfl 5

从帮助页面(适用于 WINDOWS):

-classpath classpath
-cp classpath

    Specifies a list of directories, JAR files, and ZIP archives to
    search for class files. Separate class path entries with semicolons
    (;). Specifying -classpath or -cp overrides any setting of the
    CLASSPATH environment variable.

    If -classpath and -cp are not used and CLASSPATH is not set, then the
    user class path consists of the current directory (.).
Run Code Online (Sandbox Code Playgroud)

请注意,在 Windows 上,路径分隔符是;分号。

在其他平台上,分隔符是冒号:。

这符合各种平台上的标准路径类系统。


Amr*_*tfy 5

如果添加的类路径,然后电流路径省略,这是一个非常非常不愉快的和意想不到的行为:(

此外,要添加当前路径,我发现(至少对于ubuntu而言)添加classpath 不够,.但是您必须添加./*

例如(这将不起作用)

java -ea -cp ".:lib/*" org.testng.TestNG suites/regression.xml

将不,如果你有在当前路径中的JAR文件工作

正确的是

java -ea -cp "./*:lib/*" org.testng.TestNG suites/regression.xml

我希望没人枪杀自己或心脏病发作!