我正在尝试使用NetBeans在Java中创建一个混乱的管理应用程序。我想在我的src
目录中的指定文件夹中保存Members的图像。我刚创建了名为EmpImgs的文件夹来存储员工图像。这是我的代码:
File srcDir = new File(file); // current path of image
File dstDir = new File("src\\J_Mess_Mgnt\\EmpImgs\\"+Txt_C_G_M_M_ID.getText());
objm.copyFile(srcDir, dstDir);` // copy image from srcDir to dstDir
这里我使用另一个类将图像复制到预定义的文件夹,并根据它们的ID重命名图像。
Java IDE中一切正常。
但不幸的是,在制作了一个可执行的.jar文件之后,这段代码将不起作用。我无法保存或访问该目录中的任何图像文件。
我刚刚浏览了这个网站,但我找不到合适的答案。
我需要的只是在jar文件夹中保存和编辑图像
答案 0 :(得分:0)
嘿嘿嗨,你需要一些帮助。这是重复但我会减少你的一些松弛,也许你应该删除它。回到基础,jvm运行字节代码,从编译java源代码到.class文件。现在这与C和C ++不同,你得到的是.exe。你不想给你的用户在他们可以编辑的所有这些文件夹中给你的用户一堆.class文件,并且必须在命令行上运行一个命令,而是给他们所谓的'archive',它只是一个imutable文件结构因此无法搞砸应用程序,在java中称为jar。他们只需双击存档(这是一个jar),jvm将调用MetaInf目录中指定的main方法(只是有关jar的一些信息,与其他编程语言中的清单相同)。
现在记住你的应用程序现在是一个罐子!这是不可改变的!我解释的原因。你不能再保存数据了!您的程序仍然可以在命令行和IDE中运行,因为它的工作方式就像您使用的应用程序被分配为带有.class文件的一堆文件夹一样,并且您可以写入此位置。
如果您想使用您的应用程序打包资源,则需要使用流(google it)。但要记住!你不能把更多的资源存入罐子里!你需要写别的地方!也许使用user.home目录!或者从类路径指定的位置和照片将紧挨着罐子!有时你可能需要一个java应用程序的安装程序,但通常你不想创建额外的工作,如果你不需要。
答案 1 :(得分:0)
最后我找到了一个适合我的问题的答案。不可能将图像或文件复制到执行jar文件夹。所以我使用了不同的Idea.Create一些文件夹(根据我们的要求),我的可执行jar文件夹位于(无论哪个驱动器或位置在哪里)。代码是..
=+AND(ISNUMBER(SEARCH(B12,A:A)),(ISNUMBER(SEARCH(C12,A:A))),(ISNUMBER(SEARCH(D12,A:A))),(ISNUMBER(SEARCH(E12,A:A))))
它成功运作。
Regds