Я написал приложение Java с Eclipse, которое использует SWT для пользовательского интерфейса. (см. #22275111">Исключение SWT при запуске jar: Исключение в потоке main org.eclipse.swt.SWTException: Недопустимый доступ к потоку для подробностей).
Я экспортировал как JAR, и у меня возникли проблемы с его запуском из Finder, а также из терминала. Наконец-то я смог запустить его из терминала с помощью java -XstartOnFirstThread -jar CommonDenom.jar
Однако я все еще не могу запустить его, когда экспортирую JAR из eclipse. Это потому, что ему нужен аргумент -XstartOnFirstThread
, связанный с ним при экспорте. Затем я заметил, что в Properties >> Run/Debug Settings >> commonDenom >> Edit >> (x)= Arguments
есть флажок «Использовать аргумент -XstartOnFirstThread
при запуске с SWT». Но это уже проверили. Поэтому я решил, что этот параметр применяется только при запуске кода с помощью Eclipse и не применяется к экспортированному JAR.
Поэтому я добавил аргумент вручную в поле VM Arguments
на той же вкладке. Когда я перешел к экспорту в виде исполняемого JAR, я заметил предупреждение, которое гласит: «Аргументы виртуальной машины не будут частью исполняемого JAR. Аргументы можно передавать в командной строке при запуске JAR.
В конечном счете, мне нужен способ запустить это из Finder (будь то JAR или что-то еще) без необходимости открывать Терминал и запускать его вручную. Да, я могу написать сценарий оболочки для его запуска, но я чувствую, что должен быть более простой способ.