Использование пакета com.sun.awt

Я нашел java code и хочу использовать его в своем проекте. Он содержит эти импорты, которых нет у моего JDK:

import com.sun.awt.AWTUtilities;
import com.sun.jna.Native;
import com.sun.jna.platform.WindowUtils;

Я обратился к сайту Sun и нашел эту страницу загрузки:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Нужно ли загружать все JDK и JRE и заменять их с веб-сайта SUN? Мой JDK - это версия 6, и она обновлена.

Спасибо вам всем


person sajad    schedule 09.02.2011    source источник


Ответы (3)


JNA — это дополнительная библиотека, не входящая в стандартный API, ее необходимо скачать (здесь) и включите его в свой путь к классам.

Класс AWTUtilities распространяется только с sun jvm в качестве детали реализации API и, как таковой, может быть изменен, это может привести к поломке любой программы в зависимости от него (если возможно не используйте его).

WindowUtils можно найти в файле platform.jar, вы можете найти его на той же странице, что и jna.

person josefx    schedule 09.02.2011
comment
Спасибо. Но знаете ли вы, как я могу найти файл jar, который содержит: com.sun.jna.platform.WindowUtils? Это важно для меня, потому что я также хочу запускать свой код в Linux. - person sajad; 11.02.2011

Ваш JDK должен иметь com.sun.awt.AWTUtilities. Это в rt.jar.

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

com.sun.jna классов нет в rt.jar. По-видимому, их можно найти в jna.jar, хотя я еще не нашел подходящего места, откуда их можно скачать. (Если вы используете Maven, попробуйте это.)

person Stephen C    schedule 09.02.2011
comment
Спасибо. да про com.sun.AWTUtilities. Но импортируйте com.sun.jna.Native; com.sun.jna.platform.WindowUtils; Все еще моя проблема. Я думаю, что мне нужно добавить внешнюю библиотеку в свой проект. - person sajad; 09.02.2011
comment
@СтивенС. У меня такая же проблема. мой jre был по умолчанию 1.6 только в моей среде IDE. Я потратил так много времени, чтобы решить это, но я не мог. к счастью, я нашел ваш ответ. Ваш совет мне на 100% помог и отлично у меня сработал. Ты гений, превосходный совершенный мужчина. Все заслуги перед тобой. Спасибо ооооооооооооооооооооооооооооооооооооочень. Если бы я мог, я проголосовал бы за тебя 10000 раз. - person Débora; 10.07.2012

Вы не должны использовать никакие пакеты com.sun, кроме как в крайнем случае. Они считаются деталями реализации и не являются частью JDK API. Они могут произвольно меняться между версиями, поэтому могут вызывать проблемы при попытке обновить версии JDK.

Классы com.sun почти всегда обернуты "официальными" классами - вы должны использовать их вместо этого. Вы можете использовать их в крайнем случае, но они уже являются частью загрузки JDK, поэтому дополнительная загрузка не требуется.

РЕДАКТИРОВАТЬ: Похоже, вы правы, вам нужно загрузить несколько дополнительных банок. Баночка JNA доступна на Maven Central (http://mvnrepository.com/artifact/com.sun.jna/jna/3.0.9). Особенно, если это фрагмент кода, который вы нашли, я настоятельно рекомендую не использовать пакеты com.sun напрямую.

person James Kingsbery    schedule 09.02.2011
comment
Спасибо. да про com.sun.AWTUtilities. Но импортируйте com.sun.jna.Native; com.sun.jna.platform.WindowUtils; Все еще моя проблема. Я думаю, что мне нужно добавить внешнюю библиотеку в свой проект. - person sajad; 09.02.2011
comment
Да jna 3.0.9 имеет com.sun.jna.Native; А как же com.sun.jna.platform.WindowUtils?? Этот класс имеет метод: WindowUtils.getAlphaCompatibleGraphicsConfiguration(), который возвращает объект GraphiConfigurations, который используется в моем коде. Я также хочу запустить свой код в Linux. так что это важно для меня. Это последняя версия jna? Спасибо. - person sajad; 11.02.2011