Как вы бросаете в замещающие классы JRE? - PullRequest
3 голосов
/ 18 мая 2010

java.util.zip имеет хорошо известные проблемы с использованием собственной памяти, поэтому я пытаюсь использовать замену, называемую jazzlib. к сожалению, как это типично для проектов sourceforge, документации нет. Если я добавлю jar в мой путь к классу, то Java выйдет из строя и выдаст мне ошибки «имя запрещенного пакета», потому что он заменил java.util.zip. Как мне сказать Java, что это то, что я хочу сделать?

Ответы [ 4 ]

2 голосов
/ 18 мая 2010

Информацию о последнем источнике можно найти в репозитории CVS classpath. На этой странице вы найдете исходные и двоичные выпуски кода в пространствах имен net.sf.jazzlib и java.util.zip.

Просто используйте один из них в пространстве имен net.sf.jazzlib, чтобы избежать конфликтов.

2 голосов
/ 18 мая 2010

Либо добавьте его в путь к загрузочному классу, либо добавьте в качестве одобренного фляги.

Возможно, лучше использовать shade, чтобы переименовать классы обратно из защищенных пакетов и использовать их таким образом. Maven-Shade-плагин удобен, если вы используете Maven.

1 голос
/ 18 мая 2010

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

Но если вы действительно хотите это сделать, ответы от @bmargulies и @akf полезны.

1 голос
/ 18 мая 2010

Вы можете указать переопределения для классов, представленных в JRE, используя командную строку arg -Xbootclasspath. Проверьте эту ссылку для более подробной информации.

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