java - 从 src 目录打开文件 (Java)

标签 java pdf intellij-idea

我已经为我的 Java 程序编写了一个简短的文档。单击菜单帮助 -> 文档时,操作系统的默认 PDF 阅读器应打开 documentation.pdf

我正在尝试使用 Desktop.getDesktop().open(new File("doc/documentation.pdf") 打开位于目录 src/doc 中的 PDF );Controller.java 中。

但是,Java 找不到该文件。当我用 primaryStage.getIcons().add(new Image("icon/icon_512x512.png")); 打开程序的图标时,它在 Main.java.

在这里您可以看到我的 IntelliJ 项目的布局。

src
├── META-INF
├── de
│   └── myapp
│       ├── model
│       │   └── *.java
│       ├── view
│       │   └── *.java
│       ├── Main.java
│       └── Controller.java
├── doc
│   └── documentation.pdf
└── icon
    └── icon_512x512.png

我的堆栈

  • IntelliJ 2016.2
  • Java 1.8.0_77

最佳答案

它与 new Image("icon/icon_512x512.png") 一起工作,因为在内部它是从上下文 ClassLoader 获取的,这不是 new 的情况File("doc/documentation.pdf") 在相对路径的情况下从用户工作目录获取它,因此您可以简单地应用相同的逻辑。

ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
URL resource = contextClassLoader.getResource("doc/documentation.pdf");
Desktop.getDesktop().open(new File(resource.toURI()));

关于java - 从 src 目录打开文件 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39329310/

相关文章:

javascript - 一旦渲染成 HTML 和 CSS,就生成 php 页面的一部分的 PDF,并考虑 pdf 分页符

java - IntelliJ 仅在文件夹中的每个代码都可编译时运行代码

iphone - int retVal = UIApplicationMain(argc, argv, nil, nil);尝试在 webView 中加载 pdf 时 EXC_BAD_ACCESS

java - 使用多线程异步循环

java - 如何在表格布局中更改/调整 EditText 的大小?

java - AlertDialog 上 RatingBar 的问题

javascript - 用于恢复损坏的 pdf 表单内容的脚本

java - 使用 Intellij Idea 捕获 Spring-boot 应用程序的外部 jar 停止事件

java - 弗林克 : scala version conflict?

java - 电子邮件已使用 jsp 注册?