Показано с 1,631 по 1,640 из 1813
@taurusus
Фантастический урок чистого знания! Теперь все это становится "немного" легче решать.
Спасибо большое!!!
Здравствуйте друзья,
В настоящее время я работаю над своим первым BD-J меню. За последние несколько дней я перечитал множество постов, пытаясь разобраться в этом.
Я хочу отредактировать меню диска Blu-ray от Fox (распространяемого Disney). Моя проблема заключается в том, что измененный диск не запускается в PowerDVD. (Не запускается логотип 20th Century. Экран просто остается черным.) Чтобы проверить, не потерпел ли я неудачу в базовых вопросах, я сначала переподписал немодифицированный JAR-файл с помощью Safeguard. (Я также создал новый сертификат "app.discroot.crt".) Это сработало: Диск воспроизводится без проблем!
Затем я изменил один CLASS-файл с помощью HEX-редактора. Я изменил только имя связанного PNG-файла. Это также прекрасно работает. Однако мне нужно, например, изменить координаты изображения. А это слишком сложно в HEX-редакторе.
Поэтому я декомпилировал файл CLASS, чтобы иметь возможность его редактировать. Вероятно, проблема в том, что после редактирования я не компилирую файл из JAVA-файла в CLASS-файл должным образом. Я следовал руководству, в котором JAVA-файл преобразуется обратно с помощью JDK 20 (командная строка). Однако при этом файл изменяется таким образом, что, например, Luyten уже не может его прочитать. Поэтому, скорее всего, это неправильный путь.
Отсюда мой вопрос: как и чем скомпилировать JAVA-файл обратно в CLASS-файл?
------------
Hello friends,
I am currently working on my first BD-J menu. I've been reading a lot of posts over the last few days trying to get my head around it.
I want to edit the menu of a Fox Blu-ray (distributed by Disney). My problem is that the modified disc will not start in PowerDVD. (The 20th Century logo doesn't start. The screen just stays black.) To test that I wasn't already failing at the basics, I first re-signed the unmodified JAR file with Safeguard. (I also created a new certificate "app.discroot.crt".) This works: The disc plays fine!
Then I modified a single CLASS file using the HxD HEX editor. I just changed the name of the linked PNG file. This also works perfectly. But I also need to change the image coordinates, for example. And that is too complicated in the HEX editor.
I decompiled the CLASS file so I could edit it. My problem is probably that I don't recompile the file correctly from the JAVA file back to a CLASS file after editing. I have followed a tutorial where the JAVA file is recompiled using JDK 20 (command line). However, the file is changed in such a way that Luyten, for example, can no longer read it. So this is probably the wrong way.
Hence my question: How and with what do I compile the JAVA file back into a CLASS file?
@Dame_Edna,
Привет, классы лучше редактировать в DJ Java Decompiler 3.12 если некоторые классы он не может обратно скомпилировать тогда используем JByteMod-1.8.2.
А насчёт luyten-0.5.4 он также как и PowerDVD не может открыть не переподписанный класс в джаре.
Программа не является бесплатной. Но ссылка, по которой ее можно купить, больше не работает. Где теперь можно приобрести программу?
В чем разница между Java Decompiler и DJ Java Decompiler?
@Dame_Edna,
Java Decompiler это навроде luyten только для поиска, но меньше возможностей, а DJ Java Decompiler для открытия, редактирования и обратной компиляции классов.
Скрытый текст
@taurusus: Большое спасибо! Это избавляет меня от поиска сомнительного источника.
Когда я открываю модифицированный файл CLASS с помощью Luyten, то получаю следующее сообщение об ошибке:
Видимо, поэтому он и не работает. (Я уже получал это сообщение вчера, когда использовал JDK 20 через командную строку для компиляции). Кто-нибудь знает, что это сообщение пытается мне сказать?!Скрытый текст
java.lang.IllegalStateException: Invalid BootstrapMethods attribute entry: 2 additional arguments required for method java/lang/invoke/StringConcatFactory.makeConcatWithConstants, but only 1 specified.
at com.strobel.assembler.ir.Error.invalidBootstrapMethodEntry(Error.java:244)
at com.strobel.assembler.ir.MetadataReader.readAttributeCore(MetadataReader.java:280)
at com.strobel.assembler.metadata.ClassFileReader.readAttributeCore(ClassFileReader.java:261)
at com.strobel.assembler.ir.MetadataReader.inflateAttributes(MetadataReader.java:439)
at com.strobel.assembler.metadata.ClassFileReader.visitAttributes(ClassFileReader.java:1134)
at com.strobel.assembler.metadata.ClassFileReader.readClass(ClassFileReader.java:439)
at com.strobel.assembler.metadata.ClassFileReader.readClass(ClassFileReader.java:377)
at com.strobel.assembler.metadata.MetadataSystem.resolveType(MetadataSystem.java:129)
at com.strobel.assembler.metadata.MetadataSystem.lookupTypeCore(MetadataSystem.java:86)
at com.strobel.assembler.metadata.MetadataResolver.lookupType(MetadataResolver.java:46)
at us.deathmarine.luyten.Model.openEntryByTreePath(Model.java:338)
at us.deathmarine.luyten.Model$TreeListener$1.run(Model.java:266)[свернуть]
@Dame_Edna,
Я в это не вникал, только знаю что отредактированные классы Luyten не открывает, он их может открыть только после переподписи джара в Scenarist Safeguard.
Хотя если их отдельно от джара открывать, то должны открываться, если не испорчены
@taurusus: Я нашел решение.
В новой версии Luyten теперь открывает и модифицированный файл CLASS.
Теперь я надеюсь заставить диск работать. (В настоящее время KITe занимается его муксированием.)
К сожалению, это по-прежнему не работает. После редактирования JAVA-файла с помощью DJ Java Decompiler я получаю следующее сообщение об ошибке при его обратном преобразовании в CLASS-файл:
(И так далее. Всего 33 ошибки. Все они аналогичны тем, что я выложил выше.)Скрытый текст
C:\Users\Videos\_JAVA-~1\00000\is.java:9: cannot find symbol
symbol: class jy
implements jy
^
C:\Users\Videos\_JAVA-~1\00000\is.java:67: cannot find symbol
symbol : class eh
location: class is
public static eh a;
^
[...]
C:\Users\Lukas\Videos\_JAVA-~1\00000\is.java:58: cannot find symbol
symbol : class eh
location: class is
m = new eh(o, "langDefault_eng_n", 405, 82, 173, 48);
^
C:\Users\Lukas\Videos\_JAVA-~1\00000\is.java:59: cannot find symbol
symbol : class eh
location: class is
n = new eh(o, "langDefault_eng_s", 578, 82, 173, 48);
^
33 errors[свернуть]
К вашему сведению, я ничего не менял в коде файла. Для тестирования я использовал оригинальный файл. (Я хотел исключить, что проблема не связана с моими изменениями.)
Еще один глупый вопрос от новичка: нормально ли, что порядок следования кода в декомпилированном JAVA-файле отличается от порядка следования кода в CLASS-файле? Например, некоторые строки кода в JAVA-файле находятся внизу, а в CLASS-файле - вверху.
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)