Компиляция class в jar
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Компиляция 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(); }
|
|
|
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 жжешь! а в чем проблема-то конкретно?
|
|
|
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 ? … или как же поступать иначе?
|
|
|
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.
|
|
|
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 мне нужен? ( кто разбирается естественно)
|
|
|
RE: Компиляция class в jar - 2009-01-03 14:43:42.756666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
через команду строки javac….>
javac MyClass.java В результате получиться файла MyClass.class. Если, конечно, вы прописали путь к JDK в переменную среды Path (Windows, насколько я помню, по умолчанию этого не делает). MyClass.class и нужно запихнуть обратно в jar. А то, что приведено сверху - это и есть весь результат декомпиляции? Просто там ещё кое-каких обязательных строчек не хватает ;) JDK различаются только версиями, берите последнюю (JDK 1.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 я поняла что делать - > поставить JDK … только что именно из него понять не могу. через команду строки javac….> Jar я могу открыть rar'om но толку… я б jar не трогала не будь там class файла нужного) ну без того этого нету. Подскажите что за JDK мне нужен? ( кто разбирается естественно) Когда таким образом курочат программы на Яве, измененный .class файл обычно обратно не пихают. Делают отдельный jar с одним или более .class файлами типа patch-030109.jar (пути внутри сохраняют) и пихают его в самое начало classpath-а патчуемой программы.
|
|
|
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 ну кто т оне пихает..а я попробую)
|
|
|
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 и т.д.
|
|
|
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 да я б почитала.. да только время нету. за пару дней успеть надо все, потом не смогу.
|
|
|
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/ относительно директории в которой вызывается компилятор.
|
|
|
|
|