旧版 Java 5 应用程序在迁移到 Java 7 后现在会抛出异常。我在 Java 类中包含此代码以返回 URL。 URL 可以是文件路径,也可以是应用程序的代码库。 当 URL 是文件路径时会引发错误。这里出了什么问题? 它在 Java 5 中完美运行。
最佳答案
很长一段时间以来,Sun 一直在说“不要将应用程序资源放在应用程序安装目录中!”。
他们决定在 1.6 (AFAIR) 期间的某个时间通过确保没有小程序或应用程序来使该建议更加正式。使用JWS部署可以获取安装路径,即使它已经声明了所有权限!对于应用程序。如果尝试过,JVM 将“撒谎”并直接指向首次下载 Jars 的位置,即使它们已在本地缓存并且 JVM 正在使用缓存中的文件。
所以,(根据该决定)应用程序。已损坏并需要修复。如果您提出错误报告,它将被视为“不是错误”而被关闭。
附注:
URL fileurl = new URL(getCode() + file);
应该是:
URL fileurl = new URL(getCode(), file);
关于Java 7 网络启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765459/