Unirest в работающем приложении javafx - PullRequest
0 голосов
/ 04 марта 2019

У меня следующая проблема.Я написал приложение Java, используя javafx и unirest для доступа в Интернет.Когда я запускаю приложение в моем ide (intellij), все работает нормально.Но когда я генерирую exe-файл, ничего не происходит.Я провел некоторое исследование и обнаружил это ( Метод вызова ошибки, не удалось запустить jvm ).Когда я полностью деактивирую самый неподходящий код, приложение запускается, но без функции, конечно.Тогда я впервые создаю работающую версию Java-кода и кода в целом.Я использую один вызов из самой неподходящей библиотеки:

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

Как я уже говорил, все прекрасно работает без единой ошибки в ide.Может Windows блокирует Интернет для exe, и это приводит к исключению.Я занес в белый список файлы как в своем антивирусе, так и в брандмауэре, но это не помогло.Я понятия не имею, как я могу продолжать с этого момента.Было бы неплохо, если бы кто-нибудь мог мне помочь.

По поводу комментария Слава.Если вы быстро захотите воспроизвести проблему, создайте новый проект javafx, добавьте кнопку и textArea в файл fxml, добавьте в файл 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, оно запускается без проблем, когда вы нажимаете кнопку «{» message »:« Ключ API не найден в запросе »}» печатается в textArea, как и ожидалось.Когда вы создаете работающую версию, а затем пытаетесь запустить ее, в случае, если ничего не происходит, или в случае появления двух двух всплывающих окон с «Методом вызова ошибок» и «Не удалось запустить JVM».

1 Ответ

0 голосов
/ 05 марта 2019

Я нашел решение проблемы и это полностью моя вина.Поскольку я новичок в этом, я следовал 2 учебникам на YouTube, чтобы создать исполняемый файл.Кажется, я должен добавить unirest lib отдельно к артефакту "JavaFXApp".Его можно найти в меню Файл -> Структура проекта -> Параметры проекта -> Артефакты -> выберите артефакт -> в разделе «Формат вывода», нажмите кнопку «+» и добавьте все библиотеки, которые вы используете в своем проекте, так же, как вы добавилиих самому проекту.

Тем не менее, спасибо за быстрый ответ Slaw.

...