【问题标题】:Javafx and file association : opening the selected fileJavafx 和文件关联:打开选定的文件
【发布时间】:2019-03-07 01:30:15
【问题描述】:

我有一个 JavaFX 桌面应用程序。

此应用程序将数据保存在“自定义”文件(“.ppz”)中。在我的应用程序中,我可以浏览文件并选择要打开的 .ppz。

我使用 javafx-maven-plugin 和 Inno Setup(带有 .iss 文件)为 Windows 和文件关联创建了一个 .exe 安装程序。一切正常:安装程序完成了他的工作,我的应用程序正在运行,并且我创建了一个可以工作的文件关联(使用自定义图标和一切)。

但是现在,当我双击我的“.ppz”文件时,我的 JavaFX 应用程序只是在吃午饭。我想打开选定的文件(例如:点击 .doc 会打开 MS Word 和正确的文件)。

有什么建议吗?

【问题讨论】:

  • 这听起来更像是应用程序问题而不是安装程序问题。您的应用程序是否处理双击 .ppz 文件时传递的命令行参数?
  • 谢谢你的回答@mirtheil =) 好吧,我不知道。我该如何检查?它们应该在我的主要方法的 args[] 中吗?
  • 不确定如何使用 JavaFX。这是一个link,可能会让您入门。一旦你弄清楚如何接受命令行参数,你就需要弄清楚如何处理这些信息来打开文件。
  • 我相信您想双击 ppz 文件并在您的应用程序中打开它,对吗?如果是这样,您需要将文件路径作为主类的主要方法中的参数(如@mirtheil 所说),并将文件关联到您的操作系统中。你在用什么,Windows?
  • @FernandoPaz 是的,我正在使用 Windows。我试图在我的主要方法中记录 args[] 内容,它似乎是空的。我也尝试在我的 start 方法中使用 getParameters() ,这里似乎也没有 args。

标签: java javafx file-association


【解决方案1】:

感谢您的 cmets,我找到了解决方案。

确实,这不是 Inno Setup 设置问题,这方面一切都很好,我只需要检查我的应用程序中的 args。

我的第一个错误是检查 args 的 main 方法(而不是 start 方法)。第二个是使用了错误的方法。

这是为我工作的示例:

public void start(Stage stage) {
    FXMLLoader loader = MyOwnLoader.getFxmlLoader();
    MyController controller = loader.getController();
    Parameters params = getParameters();
    log.error(params.getRaw().toString());
    //Also return the filename  : log.info(params.getUnnamed().toString());
    //Don't return the filename : log.info(params.getNamed().toString());
}

现在我只需要处理打开它的文件名。

感谢您的宝贵时间和您的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多