Java ImageIcon在视网膜显示器上显示错误图像

Java ImageIcon在视网膜显示器上显示错误图像,java,image,macos,swing,retina,Java,Image,Macos,Swing,Retina,我正在从如下URL加载图像: new ImageIcon(new URL(url)) url是一种类似于的东西,所以是互联网上的图像 这一切都很好,但是我收到了一些关于我的程序用户的报告,他们在Java 8u20(或者更高版本)上的视网膜显示器上使用该程序时,会看到奇怪的图像,而不是普通的图像 我确定他们得到的奇怪图像是一个图像,如果找不到该图像,则加载图像的CDN会自动重定向到该图像。经过一些研究,我发现较新版本的Java显然在使用Toolkit.getImage(url)method()时

我正在从如下URL加载图像:

new ImageIcon(new URL(url))
url是一种类似于的东西,所以是互联网上的图像

这一切都很好,但是我收到了一些关于我的程序用户的报告,他们在Java 8u20(或者更高版本)上的视网膜显示器上使用该程序时,会看到奇怪的图像,而不是普通的图像

我确定他们得到的奇怪图像是一个图像,如果找不到该图像,则加载图像的CDN会自动重定向到该图像。经过一些研究,我发现较新版本的Java显然在使用
Toolkit.getImage(url)
method()时自动将@2x添加到url中,该方法由
newImageIcon(url)
使用

当然,问题是如果找不到图像,CDN实际上会返回一个有效的图像,因此Java可能认为它实际上找到了一个更高分辨率的图像用于视网膜显示器。我的程序中的其他图像也以同样的方式使用
ImageIcon
,但从另一个源加载,似乎工作正常


现在的问题是,解决这个问题的最佳方法是什么?我没有访问CDN的权限,因此我必须阻止Java以某种方式尝试加载第二个URL(如果这确实是问题所在,但看起来确实是这样)。不幸的是,我没有一台计算机来测试这一点,所以很难判断哪种解决方案有效。

。CDN是什么?为了更快地获得更好的帮助,请发布一个(最少完整的可验证示例)。