从另一个java lib res和自己的res获取资源路径

时间:2016-02-05 15:52:27

标签: java javafx

(我已经完成了(差不多),但代码看起来很害羞)

我正试图从另一个lib(My core)res获取路径

基本上在我的lib(我的核心)中我写了

createWindow(null, "Login", "view/Login.fxml", "view/Core.css");

这会加载res中的文件 - >查看(所以这是有效的)

在我使用lib(我的核心)的另一个jar中

createWindow(getClass(), "Login", "Login.fxml", "Core.css"); 

这会加载src中的文件 - > us.cweye.example(我的主文件所在的位置)

这将触发此功能

private boolean isSelf = false;
public void createWindow(Class<?> clazz, String windowID, String FXMLpath, String stylePath) {
    try {
        if(clazz == null) isSelf = true;
        Parent root = FXMLLoader.load((clazz == null) ? ClassLoader.getSystemResource("res/" + FXMLpath) : clazz.getResource(FXMLpath));
        scene = new Scene(root);
        if(stylePath != null) {
                scene.getStylesheets().add((isSelf == false) ?   clazz.getResource(stylePath).toExternalForm() : ClassLoader.getSystemResource("res/" + stylePath).toExternalForm());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我有一个问题,当我编译jar时无法找到文件。所以我只是快速做了一些事情来解决它然后..如何解决这个问题

所有这些信息我希望我的lib(我的核心)加载res文件夹中的文件和我想要的文件加载res中的文件。

感谢您阅读本文。如果有人想要他们可以修复我的languange错误:)

1 个答案:

答案 0 :(得分:0)

你的文件实际上是在jar文件中吗?

我正在使用多个maven项目,需要像这样执行查找

MyClass.class.getClassLoader().getResource("folder/view.fxml")

结构如下:

的src /主/资源/文件夹/视图/ FXML