如何在与应用程序的.jar文件相同的目录中打开文件?

用户1987607

我正在尝试使用相对路径的组合将.txt文件加载到Java中的arrayList中。我的jar文件在/usr/tool/dist/tool.jar中我要加载的文件在/usr/tool/files/file.txt中

我认为我能够检索到我的tool.jar的路径,但是如何从该路径转到文件所在的路径?

我有以下代码

// String path should give me '/usr/tool'
File f = new File(System.getProperty("java.class.path"));
File dir = f.getAbsoluteFile().getParentFile();
String path = dir.toString();
String table1 = this should represent /usr/tool/files/file.txt
BufferedReader buf_table1 = new BufferedReader(new FileReader(new File(table1)));
亚诺斯

查找jar要执行文件的路径java.class.path不是正确的属性。此属性可能包含多个文件,并且您不知道哪个是正确的文件。请参阅文档。

要找到正确的jar文件的路径,可以改用以下代码:

URL url = MainClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();

MainClass主类的工具,或者在同一个jar文件中的任何其他类。

接下来,File文件的父目录是其目录。因此,的父File/usr/tool/dist/tool.jar/usr/tool/dist/因此,如果您想到达/usr/tool/files/file.txt,则需要获取父对象的父对象,然后从那里获取files/file.txt

把它放在一起:

File jarFile = new File(MainClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
File file = new File(jarFile.getParentFile().getParent(), "files/file.txt");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Flutter应用程序中从磁盘打开文件?

如何在Qt应用程序中打开文件?

如何在Java应用程序之间共享.jar文件

如何使用.Jar(Java)应用程序打开文件?

电子打开特定应用程序中的文件/目录

用户双击该文件时,如何在WPF应用程序中打开该文件?

如何在已经运行的Electron应用程序中通过“打开方式”打开文件?

如何在Web应用程序中读取属性文件?

如何在 AngularJS 应用程序中预览 PDF 文件?

如何在应用程序中捆绑文件?

如何在Rails应用程序中检测文件类型?

如何在MeanJS应用程序中实现文件下载

如何在Web应用程序中预览EML文件?

如何在React应用程序中禁用文件监视

如何在GNOME应用程序菜单中创建应用程序文件夹?

如何在Ubuntu Touch应用程序的.desktop文件中设置应用程序图标?

如何从应用程序中的jar文件中提取文件?

如何在我的 Flutter 应用程序中访问特定目录中的文件

使用应用程序打开:如何在go中检测文件名

如何在写保护模式下在Excel 365(应用程序)中打开Excel文件?

如何在自制的Mac OS应用程序中打开外部文件

如何在Xamarin Forms的默认应用程序中打开PDF或TXT文件

如何在Visual Basic中打开Windows应用程序“ .exe”文件以查看代码?

如何在aspnet核心应用程序中为静态文件使用多个目录?

如何在Flutter中从应用程序目录加载pdf文件?

如何在应用程序目录中快速读取文件数据?

如何在Nativescript Webpack的应用程序目录中包含xml文件

如何从目录中打开文件?

如何拖放文件以打开应用程序?