Java getClass().getResource().getPath()的不同输出取决于环境
我正在Eclipse中用Java编写一个应用程序,需要获得我正在使用的图像的绝对路径。我决定使用getClass().getResource().getPath(),当我从Eclipse运行应用程序时,它工作得非常好Java getClass().getResource().getPath()的不同输出取决于环境,java,eclipse,gtk,Java,Eclipse,Gtk,我正在Eclipse中用Java编写一个应用程序,需要获得我正在使用的图像的绝对路径。我决定使用getClass().getResource().getPath(),当我从Eclipse运行应用程序时,它工作得非常好 但是,当我将应用程序导出到JAR文件时,图像不会出现。我输入了一个print语句来找出上面调用的结果,结果发现在Eclipse中返回的是“/some/path/to/image.jpg”,当我从JAR运行它时,返回的是“file:/some/path/to/image.jpg”。我
但是,当我将应用程序导出到JAR文件时,图像不会出现。我输入了一个print语句来找出上面调用的结果,结果发现在Eclipse中返回的是“/some/path/to/image.jpg”,当我从JAR运行它时,返回的是“file:/some/path/to/image.jpg”。我知道额外的“file:”是导致问题的原因,但是如果我使用的是getPath(),它不应该存在。更奇怪的是,为什么它会出现在JAR中而不是Eclipse中?您需要路径做什么?要使用构建
文件输入流
?如果您想要做的只是获取图像的InputStream
,那么只需使用即可。我使用的是Java GTK绑定,我认为如果不直接使用路径,就无法创建GTK图像对象。但是仔细阅读文档并阅读您的建议后,我发现我可以从字节数组创建一个,所以谢谢!换句话说,您要将图像硬编码为字节数组?没有任何解释的下一票是没有多大用处的。