我用java编写了一个程序,可以在当前目录下生成一个文件并写入一些数据(使用的相对路径),但当导出为jar包后,生成的文件在哪里啊,想要读取生成的数据应该怎么做呢?
3条回答 默认 最新
- 於黾 2023-03-06 08:34关注
这里就涉及到程序的三种路径
1.文件目录
2.启动目录
3.工作目录
文件目录是你exe文件的位置,只要你不去挪动它,它就不会变;
启动目录,如果你双击exe启动,那么它和exe目录相同,而如果你从外部调用exe,那么启动目录是外部进程的路径
工作目录最初是启动目录,但当你使用了openfiledialog之类的插件让用户选择目录后,工作目录会改变
还有重要的第4点:相对路径是相对于谁的路径呢,其实是相对于工作目录的路径
-=-=-=
那么回到你的问题
你的程序以exe运行时,工作目录和文件目录一致,所以生成的文件就跟exe在一个目录下
如果你以jar包的方式在工作,那么工作目录是跟引用jar包的exe文件位置相关,而且与它是否执行了修改工作目录的操作相关
所以尽量先用代码获取文件目录,再拼接,而不要直接使用相对路径
如果你写的是网站,那么网站其实也分相对路径和绝对路径,网站的绝对路径可以直接找到网站的根目录,而无需你去找文件的物理位置
如果你写的是exe,那么exe是没有根目录一说的,你必须先找到文件的物理位置本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
- ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
- ¥15 io.jsonwebtoken.security.Keys
- ¥15 急,ubuntu安装后no caching mode page found等
- ¥15 联想交换机NE2580O/NE1064TO安装SONIC
- ¥15 防火墙的混合模式配置
- ¥15 Ubuntu不小心注销了要怎么恢复啊
- ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
- ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
- ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行