Java class.getResource(";/*dot*/)有什么特殊意义吗?

Java class.getResource(";/*dot*/)有什么特殊意义吗?,java,classloader,Java,Classloader,有时我在别人的代码中看到这一点。但当我尝试时,它返回null baseUrl = org.company.UploadService.class.getResource("."); url = new URL(baseUrl, "http://192.168.164.32:9080/mka-web/services/UploadService?wsdl"); 行UploadService.class.getResource(“.”返回与类UploadService的包相匹配的URL,例如 fi

有时我在别人的代码中看到这一点。但当我尝试时,它返回null

baseUrl = org.company.UploadService.class.getResource(".");
url = new URL(baseUrl, "http://192.168.164.32:9080/mka-web/services/UploadService?wsdl");

UploadService.class.getResource(“.”
返回与类
UploadService
的包相匹配的URL,例如

file://your-path/org/company
如果您是从文件系统运行 或
jar:file://yourjar-path/org/company
如果您是从jar运行的

您正在使用的
URL
的构造函数返回给定上下文中的URL。比如说

新URL(新URL(“http://google.com“,”yahoo.com“
返回
http://google.com/yahoo.com
, 但是
新URL(新URL(“http://google.com"), "http://yahoo.com“”
返回
http://yahoo.com
因为第二个URL是绝对的

因此,在你的情况下,代码没有任何意义:它与
新URL(“http://192.168.164.32:9080/mka-web/services/UploadService?wsdl“

getResource(“.”)在某些情况下,将返回指向类文件所在目录的URL

将行为描述为:

如果类是从目录加载的,则指向类路径中用于加载该类的目录的URL;如果从jar加载,则指向null

最后一部分可能是您获得
null
的原因。另一个原因可能是:

它不适用于所有JVM