Как использовать банку Для создания приложения 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--