Вниз  Java-программирование (1-ые посты)
- 23.08.2013 / 14:32
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
aNNiMON, Вот ещё немного: исходники Run-time библиотеки + файл, сгенерированный транслтяором. Ну и сам jar-ник


Прикрепленные файлы:
gen_file.zip (0.39 кб.) Скачано 16 раз
rtl_src.zip (1.04 кб.) Скачано 22 раза
Compiled.jar (2.54 кб.) Скачано 112 раз
- 23.08.2013 / 14:33
gost6678
  Пользователь

gost6678 
SeTSeR, ооо, это для меня сложновато.
- 23.08.2013 / 14:43
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
SeTSeR, никак не пойму, если ты вызываешь статический метод класса Complied, то зачем тогда вызывать конструктор?
  1. Compiled c = new Compiled();
  2. try {
  3.  Compiled.main();
То же самое и для RTL. И "new String()" зачем?

Compiled.j ты сам писал? У тебя там ошибка, присвоение ведётся прям в методе:
RTL.write(X = 2 * X + 1);
Видать что-то пропустил. Предположительно между putstatic run/Compiled/X I и getstatic run/Compiled/X I.
__________________
 let live

Изменено aNNiMON (23.08 / 14:45) (всего 1 раз)
- 23.08.2013 / 14:52
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
aNNiMON, мне всегда казалось, что для обращения к любому полю/методу класса нужно иметь хотя бы один объект класса иначе будет NullPointer. Разве нет? Про файл Compiled.j я писал в пред. посте.
  С присваиванием всё правильно. Это после оптимизатора.

Изменено SeTSeR (23.08 / 14:56) (всего 1 раз)
- 23.08.2013 / 14:58
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
SeTSeR, статическим методам и полям не нужен экземпляр класса.
__________________
 let live

Изменено aNNiMON (23.08 / 14:58) (всего 1 раз)
- 23.08.2013 / 15:02
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
Нашёл ещё один интересный факт. Если декомпилить Compiled.class и скомпилить вместе с классами main и rtl, то всё работает, а если его прогнать через ProGuard, то будет вышеуказанная ошибка при запуске. :-/

Изменено SeTSeR (23.08 / 15:08) (всего 1 раз)
- 23.08.2013 / 18:59
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
SeTSeR, а как бы если прогнать все через обфускатор? А то PG назовет переменные, как ему вздумается и фиг знает, что выйдет.
PS. Предположение, всего лишь.
- 23.08.2013 / 19:00
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
mrEDitor, Обфускацию я не юзал. Я его использовал для оптимизации и преверификации
- 23.08.2013 / 20:42
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
Отключил в PG оптимизацию, и всё запахало.
- 23.08.2013 / 23:13
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
оптимизатор удаляет не используеммые объекты/методы/переменные, так же может менять и флаги доступа, в общем творит что хочет
__________________
 знает толк
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)