Как использовать банку Для создания приложения Mac?

Я создал проект Java, когда я выполняю свое приложение из Eclipse, оно работает без проблем и без исключений. Я создал флягу, чтобы выполнить, это работает на компьютере, который я использовал для разработки, я попробовал на другом компьютере, это работает, только если я выполняю java-jar program.jar в CMD. Я попытался создать приложение Mac (. App), используя jarBundler, используя мой jar. но проблема в том, что когда я запускаю приложение, оно работает, но не останавливается. Фактически, одна из моих кнопок выполняет скрипт, и выполнение бара останавливается в конце выполнения. Mac-приложение, которое запускает скрипт, не останавливается, если я пытаюсь запустить скрипт в терминале, он работает с jar-ом, который работает. Я не знаю, в чем проблема и как ее обнаружить.

2 ответа

Попытайтесь включить сообщения регистрации (отладки) в свой код (особенно метод, который не заканчивает выполнение как ожидалось). Отслеживайте состояния всех объектов, которые важны для выполнения метода, и сравнивайте результаты в разных средах.

Если вы используете несколько потоков, добавьте ведение журнала для отслеживания их состояний и убедитесь, что они заканчиваются, как ожидается, и нет тупиков.

Что касается различий в среде (разные ОС и исполнение консоли / пользовательского интерфейса), проверьте все переменные среды, специфичные для Java, которые будут JAVA_HOME, JAVA_OPTS и т. Д. Возможно (хотя и весьма маловероятно), что ваш пользовательский интерфейс и пользователь консоли используют разные env. переменные.

Если скрипт для остановки не работает в Mac, вы можете внести некоторые изменения в код и написать скрипт для закрытия, так как он может работать на обеих платформах.

В случае, если вы не можете получить такой код, вы пишете другой скрипт для закрытия для Mac и других ОС, поэтому сначала вы пишете код для идентификации ОС по коду, а не запускаете код в соответствии с ОС.

Знать ОС, как:

public static boolean isWindows() {

        String os = System.getProperty("os.name").toLowerCase();
        // windows
        return (os.indexOf("win") >= 0);

    }

    public static boolean isMac() {

        String os = System.getProperty("os.name").toLowerCase();
        // Mac
        return (os.indexOf("mac") >= 0);

    }

Вы можете уточнить про закрывающий скрипт. это будет полезно..

--Om--

Другие вопросы по тегам