Как распространять AWTUtilities

Недавно я прочитал посты в блоге "Pushing Pixels", в которых описывается, как добиться естественной прозрачности и прозрачности с помощью чистой Java. Необходимые классы находятся в com.sun.awt, а именно com.sun.awt.AWTUtilities.

Мне было интересно, как я могу включить необходимые классы (не только этот) в мой дистрибутив, так как классы доступны только тогда, когда у вас установлен jdk и вы запускаете jvm через него. Таким образом, у пользователей моей программы не будет необходимых классов для запуска моей программы.

Есть идеи?

1 ответ

Решение

AWTUtilities, как следует из пакета, является пакетом реализации и может быть изменен. Я не думаю, что это хорошая идея распространять класс с технической и юридической точек зрения.

Технически, com.sun.awt.AWTUtlities должен иметь возможно неизвестные зависимости от других классов и внутренних деталей реализации, специфичных для Java 6 u10 и выше ( выпуск, в котором он появился). Этот неизвестный угол зависимости должен удерживать воду, поскольку рисование и графика также потребуют изменений в некоторых собственных реализациях.

Во-вторых, это обязательно изменится в Java 7, так как единственный выпуск Sun не выпустил java.awt.AWTUtilities с поддержкой прозрачности, потому что они не вносят изменения в общедоступные API, за исключением основных выпусков.

IANAL, но я не думаю, что было бы разумно участвовать в процессе перераспределения программного обеспечения, не пройдя мимо адвоката. Кроме того, клиентам не нравится идея, что какое-либо программное обеспечение не поддерживается в их системах.

Обновить

Все Sun JRE (не только JDK) начиная с 6u10 и выше поставляются с com.sun.awt.AWTUtilities, поэтому простейшим способом действий было бы заставить ваших пользователей использовать Java 6u10 или более позднюю версию в своих системах, а ваше приложение обрабатывать любые Полученное исключение изящно.

Другие вопросы по тегам