我正在用netbeans IDE编写java程序,该程序接收jasper报告*。JRXML,然后为用户显示报告。我为文件路径
编写了以下代码行String reportSource = "src\jasper-reports\report.jrxml";
但是当我移动dist文件夹在其他地方,并试图运行其中的jar文件,我的程序找不到报告。
我的问题是我应该把*放在哪里?jrxml文件以及如何在我的程序中定义它的路径,以便当我想把我的软件给别人时,它运行时没有任何错误(例如程序可以找到文件)
避免使用绝对路径。尝试将该文件作为资源包含在netbeans项目中。然后在代码中搜索并加载
文件new InputStreamReader((Main.class.getResourceAsStream("/report.jrxml")))
之类的取决于文件在项目中的位置
更推荐使用以下两种方法之一:
-
在Java应用程序启动器命令行中将位置/路径作为-D属性=值传递http://www.tutorialspoint.com/unix_commands/java.htm
-
将其位置/路径存储在配置文件中,并使用唯一的密钥对文件进行相应的编辑,以适应不同的环境。例如:这个文件总是保存在${HOME}/config_files/目录
绝对路径被认为是不好的做法