2014-07-29 2 views
1

Я сделал Screen Recorder, используя Java Swing и Xuggler 5.4. Я разработал его в Windows 8 64 бит. Он отлично работает для Windows. Но на стороне клиента в среде Linux ничего не работает. Я тщательно искал, но не получал никаких решений. Я проверил это thread, но это не сработало для меня.Swing Работы разные на разных платформах

Затем я попытался создать простое прозрачное окно в Linux, но оно также не работает. Мне не удалось щелкнуть панель изменения размера. Я использовал тот же JRE version (1.7) для обоих. Я пропустил понимание поддержки кросс-платформы Java в отношении Swing? Пожалуйста, дайте мне несколько советов ...

+2

* «Я пропустил понимание кросс-платформенной поддержки Java в отношении Swing?» * Нет, но «Xuggler» является оберткой для родной библиотеки, поэтому возникает вопрос. Много функциональности, используемой Swing/Java, зависит от способности базовой платформы предоставлять поддержку для нее. Если ОС не поддерживает его или не имеет относительной концепции, то просто нет возможности Java поддерживать эту функцию. Например, у 'GraphicsDevice' есть' isWindowTranslucencySupported', который принимает 'TRANSLUCENT' или' PERPIXEL_TRANSLUCENT', чтобы определить поддержку прозрачных оконных функций. – MadProgrammer

+0

Но я только что сделал тестовый код, который делает Frame Transparent, который работает для Windows, но не для Linux. Я могу щелкнуть рамку в окнах, но не в Linux. – tarkikshah

+0

Но в конце концов мы находимся во власти того, на что способна базовая ОС. У вашего окна есть приставки для мыши, прикрепленные к нему (или прикрепленные к любым компонентам в рамке)? – MadProgrammer

ответ

0

Я всегда находил, что журнал стал лучшим инструментом для отладки в вашем распоряжении! Много раз, java отладчики принимают вас в API, где вам не нужно идти каждый раз. Регистрирующиеся значения ваших переменных и общие выражения «Я дошел до этого момента» облегчают жизнь.

Итак, предположим, что в вашем коде имеется достаточное количество журналов. Это может дать вам понять, что происходит в системе вашего клиента. Правильные переменные окружения заданы? Указывают ли они правильные версии Java, которые вам нужны. Если у вас есть определенные требования к экранированию экрана (плагины/модули/API), доступны ли они в Linux m/c? Как и @MadProgrammer, в конце концов, Java должна поговорить с собственными графическими API, чтобы отобразить ваш экран. Я хотел бы попробовать отладить его таким образом -

  1. Проверьте мои основные нагрузки на экране или нет (путем отключения функции захвата экрана на некоторое время).
  2. если нет, копайте глубже.
  3. Проверьте, имеются ли все необходимые компоненты для захвата экрана (аудио и видео).
  4. Проверьте, выполняется ли код с соответствующими разрешениями для управления h/w-устройствами, которые могут вам понадобиться.
+0

Я добавил регистратор, но дело в том, что если какая-то часть не работает, я могу получить от регистратора. Но здесь ничего не работает должным образом :(.. Я пробовал просто сделать простой Прозрачный экран нет ничего сложного в том, чтобы просто качать .. Но он работает по-разному на обеих системах – tarkikshah

Смежные вопросы