$ CLASSPATH和-cp with Java

pro*_*eek 4 java jar classpath

  • 在这篇文章中,使用-jar选项忽略所有-cp和$ CLASSPATH.
  • 在这篇文章中,使用-cp选项也会忽略$ CLASSPATH.

他们有什么好的理由吗?

Bal*_*usC 7

每当您分发应用程序以在不同环境中运行时,都要避免类路径中的冲突.在大多数情况下,您希望应用程序独立于特定于平台的配置.如果$CLASSPATH包含对具有(无意识或有意识地)相同包和类名的类的引用,则它将在您在应用程序的类路径中包含的类之前的类加载中获得优先权.这可能会导致意外的应用程序行为或潜在的安全漏洞.


Wil*_*Niu 5

jar应该是一个独立的程序,包含自包含的库.如果要包含其他类路径,可能需要执行类似的操作

java -cp jar1:jar2:$CLASSPATH some.class.with.main
Run Code Online (Sandbox Code Playgroud)

BalusC回答了另一个问题.