Ограничение доступа к классу из-за ограничения на требуемую библиотеку rt.jar?

INT всегда будет 4 байта независимо от того, какая длина указана.

  • TINYINT = 1 байт (8 бит)
  • SMALLINT = 2 байта (16 бит)
  • MEDIUMINT = 3 байта (24 бит)
  • INT = 4 байта (32 бит)
  • BIGINT = 8 байт (64 бит).

Длина просто указывает, сколько символов отображать при выборе данных с помощью клиента командной строки mysql.

... и максимальное значение будет 2147483647 (Подпись) или 4294967295 (Без знака )

808
задан Steen 26 July 2012 в 09:55
поделиться

5 ответов

Есть еще одно решение, которое также работает.

  1. Перейти к пути сборки Настройки в свойствах проекта.
  2. Удалить системную систему JRE System
  3. Добавьте его обратно; Выберите «Добавить библиотеку» и выберите систему системной системы . По умолчанию работал для меня.

Это работает, потому что у вас есть несколько классов в разных файлах JAR. Удаление и повторное добавление JRE Lib Lib сделает правильные классы первыми. Если вы хотите, чтобы фундаментальное решение убедитесь, что вы исключите файлы JAR с одинаковыми классами.

Для меня у меня есть: javax.xml.soap.soappart в трех разных банках: Axis-Saaj-1.4.jar , Saaj-API-1.3.jar и RT.JAR

1864
ответ дан 22 November 2019 в 21:17
поделиться

Я предполагаю, что вы пытаетесь заменить стандартный класс, поставляемый с Java 5, на один из имеющейся у вас библиотеки.

Это запрещено условиями лицензионного соглашения, однако, AFAIK это не применялось до Java 5.

Я видел это с QName раньше, и я "исправил" это, удалив класс из банка, который у меня был.

EDIT http://www.manpagez.com/man/1/java/ примечания к параметру "-Xbootclasspath:"

"Приложения, использующие этот параметр с целью переопределения класса в rt. jar не следует развертывать, поскольку это противоречит лицензии на двоичный код Java 2 Runtime Environment ".

http://www.idt.mdh.se/rc/sumo/aJile/Uppackat/jre/LICENSE

«Ограничения технологии Java. Вы не можете изменять Java Интерфейс платформы («JPI», обозначаемый как классы, содержащие внутри пакета "java" или любых подпакетов пакета "java" package), создав дополнительные классы в JPI или иным образом вызывая добавление или изменение классы в JPI. Если вы создаете дополнительный класс и связанный API, который (i) расширяет функциональность платформы Java, и (ii) предоставляется сторонним разработчикам программного обеспечения с целью разработка дополнительного программного обеспечения, которое вызывает такие дополнительный API, вы должны незамедлительно опубликовать широко точная спецификация такого API для бесплатного использования всеми Разработчики. Вы не можете создавать или авторизовать свои лицензиатов на создание дополнительных классов, интерфейсов или подпакеты, которые каким-либо образом идентифицированы как "java", "javax", "солнце" или аналогичное соглашение, указанное Sun в любое условное обозначение. "

34
ответ дан 22 November 2019 в 21:17
поделиться

Я столкнулся с той же проблемой. Я нашел ответ на сайте: http://www.17ext.com .
Сначала удалите системные библиотеки JRE. Затем снова импортируйте системные библиотеки JRE.

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

67
ответ дан 22 November 2019 в 21:17
поделиться

http://www.digizol.com/2008/09/eclipse-access-Restriction-on-library.html работал лучше для меня.

В Windows: Windows -> Настройки -> Java -> компилятор -> Ошибки / предупреждения -> Устаревший и ограниченный API -> Запрещенная ссылка (правила доступа): -> Изменение на предупреждение

на Mac OS X / Linux: Eclipse -> Настройки -> Java -> компилятор -> Ошибки / предупреждения -> Устаревшие и ограниченный API -> Запрещенная ссылка (правила доступа): -> Изменить на предупреждение

119
ответ дан 22 November 2019 в 21:17
поделиться
  • Перейдите к настройкам Build Path в свойствах проекта. Windows -> Preferences -> Java Compiler
  • Удалите системную библиотеку JRE
  • Добавьте другую JRE с "идеальным соответствием"
  • очистите и снова соберите проект. Это сработало для меня.
13
ответ дан 22 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

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