Java 在netbeans中,部署jar文件后如何保存或访问映像
我正在尝试使用NetBeans在Java中创建一个混乱管理应用程序。我想将成员的图像保存在我的Java 在netbeans中,部署jar文件后如何保存或访问映像,java,netbeans,Java,Netbeans,我正在尝试使用NetBeans在Java中创建一个混乱管理应用程序。我想将成员的图像保存在我的src目录中的指定文件夹中。我刚刚创建了一个名为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.co
src
目录中的指定文件夹中。我刚刚创建了一个名为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重命名图像
一切都在JavaIDE中正常工作
但不幸的是,在生成一个可执行的.jar文件之后,这段代码将无法工作。我无法保存或访问该目录中的任何图像文件
我只是浏览了一下这个网站,但没有找到合适的答案
我只需要在jar文件夹中保存和编辑图像呵呵,你好,伙计,你需要一些帮助。这是一个重复,但我会给你一些松懈,也许你应该删除这个以后。回到基础,jvm运行字节码,这是从编译java源代码到.class文件中得到的。现在这和C和C++不同了,你只得到了.exe。您不希望在所有这些文件夹中为用户提供一堆.class文件,用户可以对这些文件进行编辑,并且必须在命令行上运行命令,而是为用户提供所谓的“归档”,这只是一个可修改的文件结构,这样他们就不会破坏应用程序,在java中称为jar。他们可以双击归档文件(这是一个jar),jvm将调用MetaInf目录中指定的main方法(只是一些关于jar的信息,与其他编程语言中的清单相同) 现在请记住,您的应用程序现在是一个jar!它是不变的!为了我解释的原因。您无法在那里保存更多数据!您的程序仍将在命令行和IDE中工作,因为它的工作方式与您使用的应用程序类似。您的应用程序被分发为一堆带有.class文件的文件夹,并且您可以写入此位置
如果您想将资源打包到应用程序中,您需要使用streams(谷歌it)。但是记住!然后,您无法将更多资源保存到jar中!你需要去别的地方写!可能使用user.home目录!或者从类路径指定的位置,照片就在jar旁边!有时您可能需要java应用程序的安装程序,但如果不需要,通常您不想创建额外的工作。呵呵,你好,您需要一些帮助。这是一个重复,但我会给你一些松懈,也许你应该删除这个以后。回到基础,jvm运行字节码,这是从编译java源代码到.class文件中得到的。现在这和C和C++不同了,你只得到了.exe。您不希望在所有这些文件夹中为用户提供一堆.class文件,用户可以对这些文件进行编辑,并且必须在命令行上运行命令,而是为用户提供所谓的“归档”,这只是一个可修改的文件结构,这样他们就不会破坏应用程序,在java中称为jar。他们可以双击归档文件(这是一个jar),jvm将调用MetaInf目录中指定的main方法(只是一些关于jar的信息,与其他编程语言中的清单相同) 现在请记住,您的应用程序现在是一个jar!它是不变的!为了我解释的原因。您无法在那里保存更多数据!您的程序仍将在命令行和IDE中工作,因为它的工作方式与您使用的应用程序类似。您的应用程序被分发为一堆带有.class文件的文件夹,并且您可以写入此位置
如果您想将资源打包到应用程序中,您需要使用streams(谷歌it)。但是记住!然后,您无法将更多资源保存到jar中!你需要去别的地方写!可能使用user.home目录!或者从类路径指定的位置,照片就在jar旁边!有时,您可能需要java应用程序的安装程序,但如果不需要,通常您不想创建额外的工作。最后,我找到了一个适合我的问题的答案。无法将图像或文件复制到executive jar文件夹。因此,我使用了不同的想法。创建一些文件夹(根据我们的要求),我的可执行jar文件夹所在的位置(无论是哪个驱动器或位置在哪里)
String PRJT_PATH=""; //variable to store path of working directory.
private void getdire() throws IOException{
File f=new File(".");
File[] f1=f.listFiles();
PRJT_PATH=f.getCanonicalPath(); //get path details.for eg:-E:/java/dist
}
private void new_Doc_folder(){ //function for creating new folders
try{
String strManyDirectories="Docs"+File.separator+"Bil_Img"; //i need to create 2 folders,1st a folder namedDocs and In Docs folder another folder named Bil_Img
String SubDirectories="Docs"+File.separator+"EmpImgs"; //same as above but keep in mind that It will not create a Same folder again if already exists,
// Create one directory
boolean success = (new File(strManyDirectories)).mkdirs(); //create more than one directory
boolean success1 = (new File(SubDirectories)).mkdir(); //Creates a single directory
if (success && success1) {
}
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
它成功地工作了
Regds最后我找到了适合我问题的答案。不可能将图像或文件复制到executive jar文件夹。因此我使用了不同的想法。创建一些文件夹(根据我们的要求),我的可执行jar文件夹位于何处(无论是哪个驱动器或位置)。代码为
String PRJT_PATH=""; //variable to store path of working directory.
private void getdire() throws IOException{
File f=new File(".");
File[] f1=f.listFiles();
PRJT_PATH=f.getCanonicalPath(); //get path details.for eg:-E:/java/dist
}
private void new_Doc_folder(){ //function for creating new folders
try{
String strManyDirectories="Docs"+File.separator+"Bil_Img"; //i need to create 2 folders,1st a folder namedDocs and In Docs folder another folder named Bil_Img
String SubDirectories="Docs"+File.separator+"EmpImgs"; //same as above but keep in mind that It will not create a Same folder again if already exists,
// Create one directory
boolean success = (new File(strManyDirectories)).mkdirs(); //create more than one directory
boolean success1 = (new File(SubDirectories)).mkdir(); //Creates a single directory
if (success && success1) {
}
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
它成功地工作了
Regds可能重复的可能重复的可能重复的谢谢先生,谢谢你给我这些有价值的信息。我认为最好在jar文件夹之外创建一个文件夹。使用一些命令,对吧。让我试试。任何人对我的主题有一些额外的想法、知识或信息,请给我一个简短的介绍,提前谢谢,不用担心,我不知道学习所有这些东西的最佳方法是什么,我想这是一种经验,所以如果你坚持下去,你会学到的。首先,我建议在做一般性学习(如遵循这些教程)和寻找问题的具体答案之间找到平衡,因为通常你不知道正确的问题是什么时候开始的。好的,先生。我不是一个有经验的人。因此,我期待你对我的问题给予真诚的帮助和建议,,谢谢你,先生,谢谢你给我这些有价值的信息。我认为最好在jar文件夹之外创建一个文件夹。使用一些命令,对吧。让我试试。任何人对我的主题有一些额外的想法、知识或信息,请给我一个简短的介绍,提前谢谢,不用担心,我不知道学习所有这些东西的最佳方法是什么,我想这是一种经验,所以如果你坚持下去,你会学到的。我会第一个建议