powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите скомпилировать .java в .class
25 сообщений из 30, страница 1 из 2
Помогите скомпилировать .java в .class
    #38796831
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имелся некий исходный jar файл,требовалось изменить кое что в работе этого файла.Планировалось открыть в winrar этот jar файл,декомпилировать нужный класс,отредактировать,скомпилировать и обратно вставить с заменой.Гугл сказал что это был бы вполне рабочий вариант.Проблемы возникли на стадии компилирования.Этот класс взаимодействует со всеми остальными классами и просто так компилироваться не хочет.Знания в java у меня нулевые,поэтому прошу,скомпилируйте мне,добрые люди, этот класс,или сразу jar файл.Денежное вознаграждение могу гарантировать.Прежде чем задавать вопросы,попытайтесь сами скомпилировать,ибо я перепробовал уже кучу команд.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38796869
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При нулевых знаниях не надо заниматься компиляцией декомпилированного.
Или учитесь или идите в топик "Работа".
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38796870
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В работу можете не ходить - у вас архив неполный и скомпилировать его невозможно. В принципе.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797119
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В силу своей специфики гугл может дать положительный ответ на любой вопрос вообще.
Просто учитывая огромные базы копипасты которые он индексирует. Но я надеюсь
автор понимает что поставленная задача - суть "авантюра" которая может как сработать
так и нет.

P.S. И прошу модераторов перенести это в соответствующий раздел.

P.S. Автору желаю успехов в изучении Java разработки. (Не в декомпилляциях и взломах).
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797288
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton...Но я надеюсь автор понимает что поставленная задача - суть "авантюра" которая может как сработать так и нет.
А почему "авантюря"? Разумеется, при условие наличия знаний и прямых рук

Не смотрел, что именно там пытается скомпилировать автор. Но в жизни бывает полно ситуаций, когда приложение и права на него есть, а исходного кода по ряду причин нет и/или утеряны.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797620
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программа имеет открытый исходный код.Но этот jar файл был изначально модифицирован с целью выгрузки стандартных библиотек из программы для облегчения памяти и обеспечения совместимости среды разработки с другими библиотеками.
Выкладываю файл требующий вмешательства. В нем нужно изменить класс APConfig.class.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
package processing.app.ardupilot;

import processing.app.*;
import java.util.*;

public class APConfig
{
    public HashMap<String, APHal> halBoardsTable;
    public String halName;
    
    public APConfig() {
        super();
        this.createBoardTable();
        final String prefHalBoard = Preferences.get("ardupilot.hal");
        if (prefHalBoard == null) {
            this.setBoard("none");
        }
        else if (!this.halBoardsTable.containsKey(prefHalBoard)) {
            this.setBoard("none");
        }
        else {
            this.setBoard(prefHalBoard);
        }
    }
    
    private void createBoardTable() {
        (this.halBoardsTable = new HashMap<String, APHal>()).put("none", new APHal(null, "None", null));
        this.halBoardsTable.put("apm1", new APHal("HAL_BOARD_APM1", "ArduPilot Mega 1", "mega2560"));
        this.halBoardsTable.put("apm2", new APHal("HAL_BOARD_APM2", "ArduPilot Mega 2.x", "mega2560"));
    }
    
    public APHal getBoard() {
        return this.halBoardsTable.get(this.halName);
    }
    
    public void setBoard(final String name) {
        if (this.halBoardsTable.containsKey(name)) {
            System.out.println("Updated ArduPilot HAL board. If you have already built this sketch, you will need to restart the Arduino IDE in order to build correctly with the new settings.");
            final APHal hal = this.halBoardsTable.get(name);
            Preferences.set("ardupilot.hal", this.halName = name);
            if (hal.boardName != null) {
                Preferences.set("board", hal.boardName);
            }
        }
    }
    
    public Boolean excludeCore() {
        if (this.getBoard().configFlag != null) {
            return true;     // а нужно чтобы в любом случае возвращал false; изменить и откомпилировать нужно
        }
        return false;
    }
    
    public List<String> getFlags() {
        final APHal board = this.getBoard();
        final ArrayList flags = new ArrayList();
        if (board.configFlag != null) {
            flags.add("-mcall-prologues");
            flags.add("-DCONFIG_HAL_BOARD=" + board.configFlag);
            flags.add("-DEXCLUDECORE");
        }
        return (List<String>)flags;
    }
}
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797624
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797631
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winxp3, плутишка ты эдакой.

Делай

Код: java
1.
$ javac APConfig.java



и собирай в архив.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797774
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

:D да я пробовал.я и не такое пробовал,но тут не все так просто!этот класс включает в себя другой класс,который в свою очередь еще 80 классов как минимум.По отдельности оно не компилится.Попробуй,откомпиль,а я тебя денежкой отблагодарю.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797778
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам русским по белому сказано - огрызок из вашего архива не может быть скомпилирован. Даже теоретически.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797779
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну кстати можно откомпилировать если каким-то образом отключить валидацию в компиляторе. 2й вариант - править прямо в байткоде (ну там немного и править кстати). А сколько денег есть?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797781
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно откомпилировать один класс. Но
1) Его надо положить в каталог соответствии с package
2) При компиляции в classpath надо включить оригинальный jar, чтобы остальные классы не перекомпилировать.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797784
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz1) Его надо положить в каталог соответствии с packageНеобязательно.
javac работает с файлами и всё, чего он требует - совпадения имени файл с именем публичного класса, если таковой существует.
Причём под виндой ему даже регистр букв не важен
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797798
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczМожно откомпилировать один класс. Но
1) Его надо положить в каталог соответствии с package
2) При компиляции в classpath надо включить оригинальный jar, чтобы остальные классы не перекомпилировать.

Попробовал разархивировать весь jar файл,оттуда удалил APConfig.class и вставил туда APConfig.java.Попробовал откомпилировать след. командой
Код: powershell
1.
javac -cp ./test/ ./test/processing/app/ardupilot/APConfig.java -d out



В ответ вместо привычной сотни ошибок или менее привычных 3 ошибок,получил следующее(скриншот ниже).Почему сейчас отказывается компилироваться?в папке тест все то,что содержалось в pde.jar..Могу предоставить хоть всю программу,хоть какую ее часть.что требуется?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797801
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что после слова note: написано совсем не понятно? )))
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797803
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recompile with -Xlint:unchecked

правда, лично я, на такое предупреждение ни разу не нарывался.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797805
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Понятно конечно,)но после рекомпиляции с таким параметром получилось следующее.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797809
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winxp3Попробовал разархивировать весь jar файл
Нахрена?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797810
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winxp3Понятно конечно,)но после рекомпиляции с таким параметром получилось следующее.
Там только warning-и. .class появился же?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797822
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Действительно,я был невнимателен.Класс скомпилировался!Всем огромное спасибо за отзывчивость,быстрые ответы и помощь! И последний вопрос,если этот скомпилированный класс вставлю с заменой в исходный jar файл,он сохранит свою работоспособность?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797830
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если архив не подписан - да, если вы не сломали функционал
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797836
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Функционал не сломан,файл не запускается.Делаю вывод он был подписан..Подписать по новой можно собственным сертификатом?или же обязательно нужен старый сертификат?
Этот jar файл -часть среды разработки arduino.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797843
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winxp3Функционал не сломан,файл не запускается.Делаю вывод он был подписан."Предположение - мать всех провалов".
"И маленькие причины причины приводят к большим последствиям" (ц) Козьма Прутков.
Это всё о вашем выводе.

P.S. Всё, что относится к подписям задекларировано в META-INF/MANIFEST.MF, так что - гадать не надо.
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797846
winxp3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Код: javascript
1.
2.
3.
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.7.0_10-b18 (Oracle Corporation)



Подписи нет?
...
Рейтинг: 0 / 0
Помогите скомпилировать .java в .class
    #38797850
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Мы пойдём простым логическим ходом":
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public Boolean excludeCore() {
        if (this.getBoard().configFlag != null) {
            return true;     // а нужно чтобы в любом случае возвращал false; изменить и откомпилировать нужно
        }
        return false;
    }
    
    public List<String> getFlags() {
        final APHal board = this.getBoard();
        final ArrayList flags = new ArrayList();
        if (board.configFlag != null) {
            flags.add("-mcall-prologues");
            flags.add("-DCONFIG_HAL_BOARD=" + board.configFlag);
            flags.add("-DEXCLUDECORE");
        }
        return (List<String>)flags;
    }

И вы продолжаете утверждать, что ничего не сломали???
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите скомпилировать .java в .class
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]