Java без головы или головой?

Я написал приложение Java с графическим интерфейсом для запуска на Rasp Pi. Он работает нормально, клавиатура, мышь и дисплей подключены к Pi.

Это было хорошо для разработки, но я хочу запустить Pi без привязки к чему-либо и взаимодействовать с Java GUI с помощью дистанционного управления. У меня есть пульт дистанционного управления, работающий нормально, но когда я пытаюсь запустить Pi без вложений, я получаю исключение Headless. Раньше я никогда не сталкивался с этим исключением.

Нужно ли устанавливать безголовую Java? Если я это сделаю, будет ли он отображать GUI в порядке?

Спасибо.

3 голоса | спросил pir8ped 11 Jpm1000000pmMon, 11 Jan 2016 20:14:07 +030016 2016, 20:14:07

2 ответа


3

Java должна только генерировать это исключение, если вы имеете дело с компонентами gui (например, Swing). проверьте все свои импортные товары для javax.swing и убедитесь, что вы не ссылаетесь на них.

также, не используйте javaw для его запуска, используйте Java. Не уверен, что это будет иметь значение, но javaw действительно предназначен только для графических интерфейсов, и вы не получите доступ к стандарту.

Если библиотека, которую вы используете, создает экземпляр компонента swing, вам может быть не повезло. Вы можете протестировать, начав с крошечного приложения «Hello, world», которое должно работать, а затем снова добавить фрагменты.

Если вы даже ссылаетесь на класс, который импортирует swing, это МОЖЕТ вызвать проблему (я не уверен), но опять же начните с базового приложения «Привет, мир» и добавьте части обратно, пока они не сломаются.

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

Если вы хотите запустить либо без головок, либо нет - попробуйте отделить все файлы GUI до одного класса. Вы можете попытаться создать экземпляр этого класса и получить исключение без головы - если вы получите это исключение, тогда перейдите в CLI, иначе все будет работать.

ответил Bill K 11 Jpm1000000pmMon, 11 Jan 2016 20:44:22 +030016 2016, 20:44:22
0

Если Swing использует простой X11 в качестве backend, для Java не должно быть обнаружено отсутствующее отображение, так как X Server отлично работает без физического отображения.

Это будет «работать», если вы всегда позволяете работать на рабочем столе.

ответил flakeshake 12 Jpm1000000pmTue, 12 Jan 2016 17:35:12 +030016 2016, 17:35:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132