kri*_*hna 13 java netbeans jar
我做了一个java应用程序.并捆绑了jar文件中的所有类..我从netbeans运行项目我的应用程序运行成功..但是我把我的.jar文件放在另一个地方并从那里运行..我没有得到我的应用程序使用的图标..在代码中,我从项目文件夹中的图像目录中获取我的图标.
现在,我想知道如何将这些图像文件呈现给最终用户(就像我们提供.jar文件一样).谢谢提前
vkr*_*mer 29
看来这里有两个问题:
如何让NetBeans在构建项目时生成的jar中包含图像文件?
如何从jar访问图像文件?
此答案适用于NetBeans 6.8并解决了这两个子问题.
假设您有一个基于ant的Java应用程序项目.
这是项目的"文件"视图
JP
+ images
+ test.jpg
+ nbproject
+ src
+ jp
+ Main.java
+ test
+ build.xml
+ manifest.mf
Run Code Online (Sandbox Code Playgroud)
在你的Main.java里面你有这样的代码:
public static void main(String[] args) throws IOException {
// find the file in the file system.. probably not a good idea
File f = new File("images/test.jpg");
System.out.println(f.getCanonicalPath()+" "+f.exists());
Run Code Online (Sandbox Code Playgroud)
从NB内部运行此项目时,您将获得此输出:
/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
Run Code Online (Sandbox Code Playgroud)
当你运行包装到jar中的代码时,你得到这样的东西:
bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.txt false
Run Code Online (Sandbox Code Playgroud)
要在执行jar时获得更好的效果,您需要执行以下操作:
添加images目录作为项目的源根目录.
右键单击项目,然后选择"属性"项.将出现一个对话框.
在对话框左侧的列表中选择"源".这将更改对话框右侧面板的内容.
按"源包文件夹"表旁边的"添加文件夹..."按钮.将出现FileChooser.
使用此选择器选择images文件夹,然后按OK按钮.将添加图像文件夹的条目表.
使用"项目属性"对话框上的"确定"按钮接受更改并关闭对话框.
更改您的代码以使用Class.getResource().
public static void main(String[] args) throws IOException {
// find the file in the file system.. probably not a good idea
File f = new File("images/test.jpg");
System.out.println(f.getCanonicalPath()+" "+f.exists());
URL url = Main.class.getResource("/test.jpg");
System.out.println(url);
Run Code Online (Sandbox Code Playgroud)
从IDE内部运行项目时,您应该看到如下内容:
/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg
Run Code Online (Sandbox Code Playgroud)
当您运行包装到jar中的代码时,您将得到如下内容:
bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.jpg false
jar:file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar!/test.jpg
Run Code Online (Sandbox Code Playgroud)
获取test.jpg文件的URL后,可以使用ImageIcon(URL)创建图标