2013-12-22 2 views
0

У меня есть программа, использующая Java3D, которую я запускаю на малине Pi. Я запускал Pi в своей сети и получал доступ к нему через VNC через другую машину, в то время как я проглатывал несколько перегибов в своей программе.Java 3D рендер на vnc, а не на мониторе

Теперь у меня он работает, хотя и немного медленно, и хотел попробовать его в конечном случае, подключив Pi к монитору и выполнив его автономно.

Однако, когда я бегу Pi на мониторе, программа не запустится, и выводит следующее сообщение об ошибке:

Canvas3D_createNewContext: couldn't make current 

DefaultRenderingErrorListener.errorOccurred: 
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context 
graphicsDevice = X11GraphicsDevice[screen=0] 
canvas = javax.media.j3d.Canvas3D[canvas0,0,0,252x231] 

Я много о процессе рендеринга в Linux не знаю, но если любой мог бы предположить, что может отличаться от того, что делает VNC и что делает обычный сервер X11, что может вызвать проблемы. Я был бы благодарен.

Я использую Oracle Java 1.7.0_40 с Java 3D 1.5 в последней версии Raspbian.

Спасибо за чтение.

+0

Использование VNC означает, что ваша установка _not_ [headless] (http://www.oracle.com/technetwork/articles/javase/headless-136834.html). – trashgod

+0

Моя ошибка в терминологии. Вопрос отредактирован. – user1111284

+0

Используйте 'java -Djava.awt.headless = true', чтобы узнать, может ли ваше приложение работать без головок или поставить головку, например. VNC, XVFB и т. Д. – trashgod

ответ

0

В статье Using Headless Mode in the Java SE Platform описаны ограничения, налагаемые на приложения, предназначенные для работы в режиме безглавых. Для приложений, которые не могут быть с успехом преобразованы, обсуждаются некоторые альтернативы here.