1

只是对我希望做的事情的快速总结:

我目前在我的家庭网络中的共享文件夹上有一个 Swing 应用程序(仅供个人使用,因此在这种情况下,便利胜过最佳实践)。这个应用程序是一个地图编辑器,我在家里的几台不同的计算机上使用它,如果我需要完全从不同的位置工作,我也想在其他计算机上使用它。

长话短说,我正在尝试找到一种设置方法,以便在运行 JAR 文件并打开文件选择器时,JFileChooser 默认为 JAR 所在的目录(或者更好的是 JAR 中的文件夹根文件夹)。事实上,我只能通过 JFileChooser 构造函数分配一个绝对目录。我现在正在这样做(使用网络目录),但更喜欢相对设置。

这样的事情可能吗?我无法摆脱我做错了什么的感觉,因为我想这将是一个常见问题,但我似乎无法在任何地方找到它(或者更确切地说,我在搜索时没有看到任何答案)

4

3 回答 3

2

您可以使用以下方式从该 JAR 文件中的类之一获取 JAR 文件的来源:

ProtectionDomain pd = ThatClass.class.getProtectionDomain();
CodeSource cs = pd.getCodeSource();
URL location = cs.getLocation();
于 2012-11-16T20:40:00.153 回答
1

您可以使用来获取实际的 JAR 位置,然后解析它并为 JFileChoosergetClass().getProtectionDomain().getCodeSource().getLocation()设置它。setCurrentDirectory()

于 2012-11-16T21:03:40.807 回答
0

您可以在代码中使用它:

JFileChooser  fc = new JFileChooser();
fc.setCurrentDirectory(new File("."));

它将文件选择器的默认位置设置为 jar 文件的位置。

于 2017-09-04T10:46:09.663 回答