gpt4 book ai didi

Java w/maven : getting sources from a jar file

转载 作者:行者123 更新时间:2023-12-01 17:37:24 25 4
gpt4 key购买 nike

我编写了一个 GUI 应用程序,并使用图像文件(gif)作为图标。当我在 IDE 中运行该应用程序时,会出现图标。当我从 jar 运行它时 - 它们失败(资源上的空指针异常)

包结构如下:

代码:src/main/java/com/my/app

资源:src/main/resources/com/my/app

我写了这个小例子:

       URL url ;

url = GuiUtils.class.getResource("/com/my/app/gui/fading_lines_blue_64x64.gif");
System.out.println("url: " + url);

url = GuiUtils.class.getResource("/resources/com/my/app/gui/fading_lines_blue_64x64.gif");
System.out.println("url: " + url);

从 IDE 运行时:

url: file:/C:/Repositories/V8/trunk/MyApp/build/com/my/app/gui/fading_lines_blue_64x64.gif
url: null

当从 Jar 中运行时:

url:null
url:jar:file:/C:/DevEnv/Projects/Viewer/testPicLoad.jar!/resources/com/cmy/app/gui/fading_lines_blue_64x64.gif

我是这样解决的,但这显然不是正确的方法:

public static URL getResourceURL(String path) {     
URL url = GuiUtils.class.getResource(path);
if (url == null) {
url = GuiUtils.class.getResource("/resources"+path);
}
return url;
}

建议?

最佳答案

您的第二个选项中的路径听起来错误。默认情况下,maven 应该将资源与编译的类一起放入目标/类中。 Jaring 应该接受所有这些,这就是为什么添加“/resources”对我来说听起来很奇怪。它应该在 testPicLoad.jar 中找到 gif!/com/cmy...

创建 jar 时您是否做了一些奇怪的事情?

关于Java w/maven : getting sources from a jar file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com