在可运行的javafx应用程序中取消

问题描述 投票:0回答:1

我有以下问题。我使用javafx和unirest为互联网访问编写了一个java应用程序。当我在我的ide(intellij)中运行应用程序时,一切正常。但是当我生成一个exe时没有任何反应。我做了一些调查,发现了这个(Error invoking method, failed to launch jvm)。当我完全停用应用程序启动的unirest代码时,当然没有功能。这是我第一次创建一个可运行的java代码和代码版本。我使用来自unirest lib的一个调用:

HttpResponse<JsonNode> jsonResponse
                    = Unirest.get("website")
                    .header("key", "value")
                    .asJson();

就像我说的一切都很好,没有一个错误的想法。可能Windows会阻止exe的互联网,这会导致异常。我将防病毒软件和防火墙中的文件列入白名单,但它没有帮助。我不知道从这一点上我怎么能继续下去。如果有人可以帮助我会很好。

参考Slaw的评论。当您想快速重现问题时,创建一个新的javafx项目,将一个按钮和一个textArea添加到fxml文件中,将unirest lib和以下代码添加到“Controller.java”:

 @FXML
Button button;

@FXML
TextArea text;

public void initialize(){

    button.setOnAction((event -> {

        try {
            HttpResponse<String> jsonResponse
                    = Unirest.get("https://api.fortnitetracker.com/v1/profile/pc/bob")
                    .asString();
            text.setText(jsonResponse.getBody().toString());
        } catch (UnirestException e) {
            e.printStackTrace();
        }
    }));
}

在ide中运行应用程序,它启动没有问题,当您单击按钮“{”消息“:”没有在请求中找到API密钥“}”在textArea中打印出如预期的那样。当你构建一个可运行的版本,然后尝试启动它时,万一没有任何事情发生,或者两个弹出窗口出现“错误调用方法”和“无法启动JVM”。

java javafx jar javafx-8 unirest
1个回答
0
投票

我找到了问题的解决方案,这完全是我的错。因为我是新手,我在YouTube上关注了2个教程来创建可执行文件。似乎我必须将unirest lib分别添加到“JavaFXApp”工件中。可以通过以下文件 - >项目结构 - >项目设置 - >工件 - >选择工件 - >“输出布局”下按“+”按钮并添加您在项目中使用的所有库,就像添加了一样他们到项目本身。

不过谢谢你快速回答Slaw。

© www.soinside.com 2019 - 2024. All rights reserved.