竹春九月 2023-03-06 03:06 采纳率: 100%
浏览 31
已结题

java相关问题,求解答

我用java编写了一个程序,可以在当前目录下生成一个文件并写入一些数据(使用的相对路径),但当导出为jar包后,生成的文件在哪里啊,想要读取生成的数据应该怎么做呢?

  • 写回答

3条回答 默认 最新

  • 於黾 2023-03-06 08:34
    关注

    这里就涉及到程序的三种路径
    1.文件目录
    2.启动目录
    3.工作目录
    文件目录是你exe文件的位置,只要你不去挪动它,它就不会变;
    启动目录,如果你双击exe启动,那么它和exe目录相同,而如果你从外部调用exe,那么启动目录是外部进程的路径
    工作目录最初是启动目录,但当你使用了openfiledialog之类的插件让用户选择目录后,工作目录会改变
    还有重要的第4点:相对路径是相对于谁的路径呢,其实是相对于工作目录的路径
    -=-=-=
    那么回到你的问题
    你的程序以exe运行时,工作目录和文件目录一致,所以生成的文件就跟exe在一个目录下
    如果你以jar包的方式在工作,那么工作目录是跟引用jar包的exe文件位置相关,而且与它是否执行了修改工作目录的操作相关
    所以尽量先用代码获取文件目录,再拼接,而不要直接使用相对路径
    如果你写的是网站,那么网站其实也分相对路径和绝对路径,网站的绝对路径可以直接找到网站的根目录,而无需你去找文件的物理位置
    如果你写的是exe,那么exe是没有根目录一说的,你必须先找到文件的物理位置

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月6日

悬赏问题

  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow