java获取jar包路径_我的世界java版在哪个文件夹

Java (2) 2024-09-27 19:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
java获取jar包路径_我的世界java版在哪个文件夹,希望能够帮助你!!!。

【地震高岗,一派西山千古秀】

背景

文件上传请求时,一般我们传入文件路径作为参数,使用常用路径获取方法都可以,如:this.getClass().getClassLoader().getResource("filename").getPath()获取项目中文件路径;但是Java项目部署时需要打成jar包,运行后就会出现错误:路径异常;那么是什么原因导致的错误?我们该如何获取jar中文件路径呢?

原因

  1. 当我们项目打包部署jar后,那么jar包是一个特殊格式的文件形式存在,就只能使用IO的方式读取资源,因此这时候就不能通过一般的File来操作资源了。
  2. 在本地IDE项目中之所以能正常运行,是因为编辑器中的资源文件在target/classes目录下,是正常的文件系统结构,我们可以逐层获取资源的路径的。

解决

方法1:创建临时文件,使用IO读取文件内容并输出到临时文件中,这样我们就能获取临时文件路径代替项目中文件路径,当然这样比较消耗资源;

方法2:上传时ftp中我们可使用以下方式,亲测可用哦 FtpClient ftp = new FtpClient ();

ftp.setDataTimeOut(10*1000);

ftp.connect(ip);

ftp.login(name,pwd);

ftp.setFileType(DTP.BINARY_FILE_TYPE);

ftp.setControlEncoding("GBK");

ftp.enterLocalPassiveMode();

String dir = ftp.printWorkingDirectory();

String filePath = "/config/test.sh"; //注意一点,config前面的‘/’不能省略

String uploadPath = dir + filePath ;

InputStream istream= this.getClass().getResourceAsStream(filePath );

ftp.storeFile(uploadPath ,istream);

思考

其实我们在尝试解决问题的时候还可以考虑一下是不是这个问题本身就是个伪命题;换个角度,为什么我们会把使用到的文件打包在jar中呢,是不是一定要在jar中才行?这种场景是不是使用文件服务器更方便更高效呢?如果我们想通了是不是自然而然就可以避免这个问题的出现呢?好了,朋友们。。。不扯了,晚安!

【门朝大海,三河合水万年流】

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复