java - 如何从运行在 OS X、Java 7 上的 Java .app 包中访问资源文件?

标签 java macos java-7 resource-files app-bundle

请注意,我说的是 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.dir JVMArgument 属性)- 文件看似具有正确的路径,但 file.exists () 返回 false。
  • 尝试将类路径设置为 Java 文件夹。 (getClass().getResource() 仍然返回 null)

最佳答案

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

关于java - 如何从运行在 OS X、Java 7 上的 Java .app 包中访问资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276795/

相关文章:

ios - 无法从文件系统中删除.zip文件

c - 在 Clang 中使用带有 qsort 的 block 时出现不兼容的指针类型错误

macos - Numpy EIG 在 Mac OS X 10.6 上比 MATLAB EIG 慢大约 4 倍。我究竟做错了什么?

java - switch 语句中使用的 char 数组

当 JNLP 固定为 JRE 1.6 并且安装了 JRE 1.7 时,Java WebStart 启动失败

java - 如何在android/java中获取json对象中json数组的所有标签名称列表

java - 使用loadLibrary加载dll

java - 类型推断 : Java 7 Type Parameters

java - 在 spring 运行时更改 bean 属性/值

Java:在第一个标记后停止扫描器