Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Компиляция class в jar

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Компиляция class в jar
Имя
Сообщение << Старые топики   Новые топики >>
Компиляция class в jar - 2009-01-02 19:53:45.306666   
Sobstvennaya

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-02 19:32:39.990000
Столкнулась с проблемой.
Открыла Jar файл, где мне нужно изменить class файл. Далее class могу сохранять как java при декомпиляции. xxx.java переименую в xxx.class
после чего пихаю обратно в jar (с пмошью вин рара) редактировала
class с помошью DJ JAVA Decompiler …

Как это все собрать а один Jar что б все было непосредственно безошибочно? …

Сама ява является сервером..я просто сняла в коде хеширование пароля.


{


MessageDigest md = MessageDigest.getInstance("SHA");


byte newpass[] = password.getBytes("UTF-8");


newpass = md.digest(newpass);


Connection con = null;


con = L2DatabaseFactory.getInstance().getConnection();


PreparedStatement statement = con.prepareStatement("REPLACE\taccounts (login, password, access_level) VALUES (?,?,?)");


statement.setString(1, account);


statement.setString(2, Base64.encodeBytes(newpass));


statement.setString(3, level);


statement.executeupdаtе();


statement.close();


}



—>


{


byte newpass[] = password.getBytes("UTF-8");


Connection con = null;


con = L2DatabaseFactory.getInstance().getConnection();


PreparedStatement statement = con.prepareStatement("REPLACE\taccounts (login, password, access_level) VALUES (?,?,?)");


statement.setString(1, account);


statement.setString(2, Base64.encodeBytes(newpass));


statement.setString(3, level);


statement.setString(1, account);


statement.setString(2, Base64.encodeBytes(newpass));


statement.setString(3, level);


statement.executeupdаtе();


statement.close();

statement.executeupdаtе();


statement.close();


}
Post #: 1
RE: Компиляция class в jar - 2009-01-02 21:12:11.756666   
Брат2

Сообщений: 21
Оценки: 0
Присоединился: 2008-06-08 14:03:40.190000
quote:

ORIGINAL: Sobstvennaya
xxx.java переименую в xxx.class

:D:D жжешь!

а в чем проблема-то конкретно?
Post #: 2
RE: Компиляция class в jar - 2009-01-03 00:52:19.213333   
Sobstvennaya

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-02 19:32:39.990000
quote:

жжешь!

а в чем проблема-то конкретно?


Проблема в том, что на сколько я знаю java только с помошью компилятора можно пихать в class форму и соответственно в jar файл в дальнейшем. или же это все делается единовременно….дак и не суть… объясните возможно ли class файл редактировать прямо в jar'e ? … или как же поступать иначе?
Post #: 3
RE: Компиляция class в jar - 2009-01-03 02:27:34.740000   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
Какой-то набор мыслей просто. Для начала, если код имеет значение, то неплохо было бы его оформить с помощью тега code (сверху над окном ответа есть). Ну и плюс комментарии, где что, не помешали бы. А если не имеет (а здесь, как я понял, не имеет), то и постить не стоит, только запутывает людей.
Дальше. jar-файл - это тот же zip. Sun выкупил формат, переименовал расширение и стал использовать для своих программ. То есть, если тебе нужно сделать что-то с jar-файлами (добавить / удалить / изменить), лучше всего просто переименовать архив в zip, распаковать, изменить и запаковать обратно. Ну и в jar снова переименовать, естественно :)
Следующее. С декомпиляторами не работал, но что-то у меня сильные сомнения, что ваш DJ так хорошо декомпилировал байт-код. Так или иначе, чтобы сделать из xxx.java снова xxx.class маловато будет просто переименовать файл: тут собственно скомпилировать его надо. Это вам не html, всё-таки. Так что компилятор нужен не для того, чтобы пихать в класс форму, а для того, чтобы вообще создать этот самый класс и затем упаковать его в jar.
Post #: 4
RE: Компиляция class в jar - 2009-01-03 12:55:20.796666   
Sobstvennaya

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-02 19:32:39.990000
kreol я уже немного разобралась. DJ отлично декомпилирует, можете проверить сами, лучше не нашла в сети.
а что бы создать class я поняла что делать - > поставить JDK … только что именно из него понять не могу. через команду строки javac….>

Jar я могу открыть rar'om но толку… я б jar не трогала не будь там class файла нужного) ну без того этого нету. Подскажите что за JDK мне нужен? ( кто разбирается естественно)
Post #: 5
RE: Компиляция class в jar - 2009-01-03 14:43:42.756666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

через команду строки javac….&gt;

javac MyClass.java В результате получиться файла MyClass.class. Если, конечно, вы прописали путь к JDK в переменную среды Path (Windows, насколько я помню, по умолчанию этого не делает). MyClass.class и нужно запихнуть обратно в jar.
А то, что приведено сверху - это и есть весь результат декомпиляции? Просто там ещё кое-каких обязательных строчек не хватает ;)

JDK различаются только версиями, берите последнюю (JDK 1.6), должно скомпилироваться всё (при условии, что текст класса сформирован правильно).
Post #: 6
RE: Компиляция class в jar - 2009-01-03 20:25:02.530000   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
quote:

ORIGINAL: Sobstvennaya

kreol я уже немного разобралась. DJ отлично декомпилирует, можете проверить сами, лучше не нашла в сети.
а что бы создать class я поняла что делать - &gt; поставить JDK … только что именно из него понять не могу. через команду строки javac….&gt;

Jar я могу открыть rar'om но толку… я б jar не трогала не будь там class файла нужного) ну без того этого нету. Подскажите что за JDK мне нужен? ( кто разбирается естественно)

Когда таким образом курочат программы на Яве, измененный .class файл обычно обратно не пихают. Делают отдельный jar с одним или более .class файлами типа patch-030109.jar (пути внутри сохраняют) и пихают его в самое начало classpath-а патчуемой программы.
Post #: 7
RE: Компиляция class в jar - 2009-01-04 13:35:14.713333   
Sobstvennaya

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-02 19:32:39.990000
kreol переменную я поставила. Javac работает. только на странное удивление он ненаходит мне мой файл! как я могу провести пуь то к нему? ..

Так.. его я нашла. Вот что мне выдает. http://i067.radikal.ru/0901/4e/e43723b856f0.jpg … и как с этим бороться?!

Absurd ну кто т оне пихает..а я попробую)

Post #: 8
RE: Компиляция class в jar - 2009-01-04 14:42:14.560000   
Брат2

Сообщений: 21
Оценки: 0
Присоединился: 2008-06-08 14:03:40.190000
ув. Sobstvennaya, может, прежде, чем декомпилляцией заниматься, литературку по java почитать?
в консоли все белым по черному написано:
- публичный класс SQLAccountManager должен быть объявлен в файле с названием SQLAccountManager.java
- ты импортируешь паекты, которых нет в classpath
и т.д.
Post #: 9
RE: Компиляция class в jar - 2009-01-04 14:47:15.736666   
Sobstvennaya

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-02 19:32:39.990000
Изменила… а толку больше стало?

http://s54.radikal.ru/i146/0901/72/04371ca0ea7c.jpg

да я б почитала.. да только время нету. за пару дней успеть надо все, потом не смогу.
Post #: 10
RE: Компиляция class в jar - 2009-01-04 17:42:31.553333   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666

quote:

ORIGINAL: Sobstvennaya

kreol переменную я поставила. Javac работает. только на странное удивление он ненаходит мне мой файл! как я могу провести пуь то к нему? ..

Так.. его я нашла. Вот что мне выдает. http://i067.radikal.ru/0901/4e/e43723b856f0.jpg … и как с этим бороться?!

Absurd ну кто т оне пихает..а я попробую)


1) Компилятор javac должен иметь под рукой все зависимые классы которые использует компилируемый класс. Т.е на практике это значит что у javac есть параметр -classpath куда надо передать все jar-ы которые использует приложение которое ты курочишь.

2) если класс имеет имя ru.xakep.prog.SomeClass то SomeClass должен лежать в файле SomeClass.java в директории ./ru/xakep/prog/ относительно директории в которой вызывается компилятор.
Post #: 11
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Компиляция class в jar







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.