我的jar文件中有一个图像,我还使用另一个也有图像的jar文件。 如何在运行时知道存在特定图像(资源)的jar文件。
对于课程,我可以使用
getClass().getProtectionDomain().getCodeSource().getLocation()
但就我而言,这是一张图片!
答案 0 :(得分:0)
资源的网址格式为jar:url-of-jar-file!entry-path
。忽略错误检查:
URL resURL = getClassLoader().getResource(resName);
// ==> resURL = jar:ORIGINAL_URL!resName
String path = resURL.getPath();
// ==> path = ORIGINAL_URL!resName
URL jarURL = new URL(path.substring(0, path.indexOf('!'));
// ==> jarURL = ORIGINAL_URL
如果你能负担得起建立连接,你可以选择这样做:
JarURLConnection conn = (JarURLConnection) resUrl.openConnection();
URL jarURL = conn.getJarFileURL();