System.getProperty("java.class.path")
返回的是我的程序的类路径。然而,getClassLoader().getURLs()
也提供了与此相同的类路径(请参见我的其他帖子:如何使用getClassLoader)。
这两种方式有什么区别?
System.getProperty("java.class.path")
返回的是我的程序的类路径。然而,getClassLoader().getURLs()
也提供了与此相同的类路径(请参见我的其他帖子:如何使用getClassLoader)。
这两种方式有什么区别?
主要的差别在于它们返回的内容不同:
getClassLoader.getURLs()
返回用于加载类和资源的URL的搜索路径。这包括构造函数指定的原始URL列表以及任何通过addURL()方法后续追加的URL,详见链接
System.getProperty("java.class.path")
用于查找包含类文件的目录和JAR档案的路径。类路径的元素由path.separator属性指定的平台特定字符分隔,详见链接。
从定义上看,这里有一些区别:
或多或少取决于您尝试实现什么,需要决定选择哪个。
干杯!
一个区别是,没有'ClassLoader.getURL()'这样的方法。
你获得 URL 的 ClassLoader(虽然不是通过你提到的不存在的方法),可能并不是系统类加载器。它可能是 URLClassLoader
,它与类路径无关。