使用目录选择器的Javafx崩溃了linux下的应用程序

时间:2016-10-23 14:33:13

标签: java linux javafx-8

我正在尝试使用DirectoryChooser类的问题。我在Windows下编写了代码并对其进行了测试并且工作得很好。我在我的Ubuntu 16.04计算机上编译了运行的.jar,当调用DirectoryChooser.showDialog()方法时,应用程序崩溃了。我尝试调试它,崩溃的确切点在返回的valor赋值中,这是:

File file = fc.showDialog(primaryStage);

我试过没有分配到文件变量并且对话框显示正确,但显然我没有文件夹路径:/。

我把整个代码:

private EventHandler<MouseEvent> onLblFolderMouseButtonReleased = new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent event) {
        if(event.getButton() == MouseButton.PRIMARY){
            DirectoryChooser fc = new DirectoryChooser();

            if(screenshotsSaveDir != null && screenshotsSaveDir.isDirectory()){
                fc.setInitialDirectory(screenshotsSaveDir);
            } else {
                fc.setInitialDirectory(new File(System.getProperty("user.home")));
            }

            fc.setTitle(rb.getString("select_folder_dialog_title"));
            File file = fc.showDialog(primaryStage);

            if (file != null) {
                prefs.put(SAVE_PATH, file.getPath());
                lblFolder.setText(file.getPath());
                screenshotsSaveDir = file;
                screenshotsSavePath = file.getPath();
            }
        }
    }
};

返回异常,致命错误,有问题的框架:C [libpthread.so.0 + 0x9d84] pthread_mutex_lock + 0x4

向某人提出任何建议。

1 个答案:

答案 0 :(得分:0)

我终于找到了问题。我正在使用JNative Hooks库。我在以前的项目中使用它,并且在Linux下都可以正常工作。在这个新项目中,我使用的是2.0.3版,我开始尝试解决问题。我回滚到JNative Hooks的2.0.2版本,一切正常。