Java Class Loader вопрос

программирование java

вопрос такой:
как я понял после того как я создал экземпляр своеего загрузчика и загрузил им класс, мой загрузчик стал текущим и все потом загружается им... а как с системными классами и внешними библиотеками?

Примечание:
ну хорошо пусть системные всегда системным грузятся... а что с немоими библиотеками?
идея вообще такова что мои классы будут криптованными... соответственно если мой лоадер попробует раскриптовать не мой класс то обломится
если кто занает линк на пример с шифрованием классов подкинте плз

Примечание:
нет в программе использется не только мой код но и чужие библиотеки в виде jar

Примечание:
во поднакопал про шифрование классов
http://www.javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html?page=1

Примечание:
рождленный в СССР я просто думаю что это должно быть как то предусмотренно уже, чтобы огород не городить

Примечание:
safright процес запутывания зовется обфускацией... не всегда работает на сложном коде
а шифроваться классы будут хардварным ключем и без него их восстановить будет никак нельзя... смысл в этом
Ответы:
"An instance of the ClassLoader class of the java.lang package is responsible for loading all classes. For system classes, that class loader is available through the getSystemClassLoader method of ClassLoader. For user classes, if that class is already loaded, you can ask for the ClassLoader with the getClassLoader method of Class." - взял из http://java.sun.com/developer/JDCTechTips/2003/tt0819.html
А что мешает вашему класслоадеру Ваши классы расшифровывать, а другие нет - например по пакету определять чей класс и если не Ваш, то использовать стандартный класслоадер?
тов. Псих, если тебе нужно засекьюрить свои классы, чтоб их никто не мог украсть - юзай специальные компиляторы/оптимизаторы, "запутывающие" код (хз как называется, забыл и че-т не могу вспомнить).
Некоторые особо удачливые делают такую бяку, что после дизассемблирования снова собрать и запустить просто не получится.
#4: именно шифрование для .class никому накуй не нужно - применение придумать не то чтобы затруднительно... но зачем?
Можешь подумать на тему загрузки классов по сети (эт который network classloader) + шифрование (тож поддерживается).
точняк. неудобоваримое слово =)
хардварный ключ подделают (взломают дрова), код вытащат (экзампл - 1С). По сути вопрос лишь в том, насколько дорого защитить код и насколько он сам важен... Потому что совершенно надежного способа для защиты от незаконного распространения и изучения нет, и, по некоторым мыслям (с которыми я согласен) не будет в принципе. Разве что сама логика программы или самые "вкусные" детали работают на защищенном серваке, благо здесь java впереди планеты всей.
еще мысль подумалась: даже если считать, что всякие ключики и прочее будут надежными/некопируемыми и т.п. - сам-то classloader должен быть в прямом доступе...
Вообще, на сколько я правильно понял, если как и должно быть использовать схему с chained class loaders, то если родительский лоадер о классе не знает, то класс будет грузиться твоим лоадером. С системными классами тут вроде понятно, все из classpath будет загружено не твоим лоадером. Для jni наверное может потребоваться  Thread.currentThread().setContextClassLoader().
Слушай это табак, лучше сигареты, у него нет прияваности и от него кайфуешь....


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.