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,
与类路径无关。
黑暗中的一枪是 ClassLoader 需要类路径才能找到要加载的内容, getClassLoader() 也调用本机方法,JVM 可能直接获取类路径并将其加载到类加载器中。
您正在以不同的方式访问相同的数据。