3

请注意,我说的是 Java 7,因为自 Java 6 以来,Java .app 包的 info.plist 规范似乎发生了一些变化。

目前我的代码如下所示:

  File file = new File( "documentation/index.html" );
  if (file.exists()) {
      // opens the URI in the browser
      GUIUtils.openURI( file.toURI() );
  } else {
      // opens the URI in the browser
      GUIUtils.openURI( getClass().getResource( "/documentation/index.html" ).toURI() );
  }

Java应用程序包的子文件夹中,我有一个“文档”子文件夹。我尝试了多种方法,但无济于事:

  • 在 info.plist 中,将工作目录设置为 Java 文件夹(具有-Duser.dirJVMArgument 属性) - 该文件看似具有正确的路径,但file.exists()返回 false。
  • 试图将 ClassPath 设置为 Java 文件夹。(getClass().getResource()仍然返回 null)
4

2 回答 2

5

如果您准备使用com.apple扩展,com.apple.eio.FileManager.getPathToApplicationBundle()将为您提供包的基本路径,然后您可以创建一个File相对路径。

于 2012-09-05T09:52:30.197 回答
1

从 Java 9 开始,com.apple无法访问。

Java 9 使用模块来导出(和公开)包,因此com.apple现在不可用且已弃用。据此应该提供类似的java.awtAPI 功能。

只是想提供此更新,因为我在接受的答案后遇到了这个问题。

System.getenv("LOCALAPPDATA")可作为获取应用程序环境的选项。

于 2018-01-29T01:13:28.317 回答