Как глобально установить системные свойства Java в OS X?

Краткая история

Мне нужен системный способ установки java.awt.headless свойство на trueдля всех вызовов Java. То есть использование -Djava.awt.headless=trueне вариант, так как java вызывается из мест, к которым у меня нет доступа (например, из другого инструмента, написанного на Java/C/etc .)

Долгая история

Я использую набор инструментов, написанных на Java (в частности, Adobe Air ADT), которые полагаются на классы AWT. Когда я запускаю эти инструменты на консоли, они работают нормально. Но когда я запускаю их из сеанса SSH, они терпят неудачу с java.lang.InternalError: Не удается подключиться к оконному серверу - недостаточно разрешений . Погуглив, я обнаружил, что установка java.awt.headless в true решит проблему.Это не так, потому что сам ADT порождает дочерние процессы Javaбез-Djava.awt.headless=true.

Есть ли способ на системном уровне обеспечить установку этого свойства при каждом вызове Java? Может быть, какой-то системный файл свойств awt или аналогичный?

В худшем случае я мог бы попробовать заменить /usr/bin/javaсценарием оболочки, который добавляет этот аргумент к "$@", но я надеюсь избежать этого. (Обновление: просто чтобы убедиться, что моя теория верна, попробовал этот хак сценария оболочки, и он действительно решает проблему. Просто надеюсь на более чистое решение)

10
задан Blanka 16 May 2012 в 22:20
поделиться