Java 如何从swing代码中获取任何应用程序的根安装目录?
我正在为一个应用程序设计补丁安装程序。安装程序的第一页(欢迎页之后)要求提供已安装应用程序的根目录,并提供一个浏览按钮供用户选择根目录。但是,为了简化过程,我希望安装程序能够智能地找到根安装程序目录,并在文本字段中将其设置为默认目录,而不是将其保留为空(正如我在许多安装程序中看到的那样)。实现同样目标的最佳方式是什么Java 如何从swing代码中获取任何应用程序的根安装目录?,java,swing,deployment,auto-update,Java,Swing,Deployment,Auto Update,我正在为一个应用程序设计补丁安装程序。安装程序的第一页(欢迎页之后)要求提供已安装应用程序的根目录,并提供一个浏览按钮供用户选择根目录。但是,为了简化过程,我希望安装程序能够智能地找到根安装程序目录,并在文本字段中将其设置为默认目录,而不是将其保留为空(正如我在许多安装程序中看到的那样)。实现同样目标的最佳方式是什么 private JButton getBrowseButton(JPanel panel) { final JButton browseBtn = new JButton(
private JButton getBrowseButton(JPanel panel) {
final JButton browseBtn = new JButton(rm.getMessage("button.browse"));
browseBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
JFileChooser jfChooser = new JFileChooser();
jfChooser.setCurrentDirectory(new java.io.File("."));
jfChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jfChooser.setAcceptAllFileFilterUsed(false);
guiUtil.removeFilesOfTypeFromJFileChooser(jfChooser);
jfChooser.showOpenDialog(panel);
}
});
return browseBtn;
}
我曾想过使用环境变量,但应用程序没有设置任何环境变量,我只能System.getenv(stringpath)
直接获取
如果您有任何帮助,我们将不胜感激。撇开这一点不谈,您自己尝试实现这一点可能不是一个好主意(请参见问题注释) 这不可能适用于所有应用程序,因为安装目录是一种约定,而不是要求。相反,有必要在每个应用程序/每个平台的基础上实现这一点。这里有一些想法
- 将安装目录路径连接到用于启动应用程序的包装器脚本中,并将其作为系统属性、命令行参数或环境变量传递
- 将安装目录路径存储在应用程序配置文件中
- 从包装器脚本的位置推断安装目录路径
- 从类路径推断安装目录路径
- 将安装目录路径存储在Windows注册表或类似文件中