Где достать говно мамонта? (о версиях джава)

markyzz

Так получилось, что нужен джава-компилятор именно вот такой: 1.4.2_17-b06 (javac.exe имеется ввиду)
На сайте оракла черт ногу сломает. Если у кого скилл поиска в инете (или в oracle.com) круче, то ткните, плиз, меня рожей в ссылку для скачивания этого раритетного говна. (сам не джавист, поэтому, если кто-то объяснит, почему именно эту версию не могу найти, то тоже - )Заранее спасибо!
ЗЫ ну, вот тут что-то пишут, только самого компила не нашел.... http://setupxlims.blogspot.ru/2009/02/javatm-2-build-14217-b...

Hastya

Компилятор отдельно не продается, только в составе JDK
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase14-419411.html

markyzz


Компилятор отдельно не продается, только в составе JDK
http://www.oracle.com/technetwork/java/javasebusiness/downlo...

ага - тут только 1.4.2.17......
а мне нужен именно Created-By: 1.4.2_17-b06 (Sun Microsystems Inc.)
я вот и не пойму, что это за -b06
что-то хрень какая-то.... :(

markyzz

общий смысл таков:
я разобрал jar, который был собран на 1.4.2_17-b06
а собрать обратно не получается.
во-первых, у меня, конечно руки из жопы
во-вторых, я не джавист (но, ничего сложного по коду в сорцах нет)
в-третьих, компиляторы, которые младше, дают одни ошибки. А компиляторы, которые старше - совершенно другие.
(это даже в том случае, что я ни коем образом не меняю джава-код)
вот я и подумал... что это говнищще - промежуточное звено, где что-то накостыляли перед выходом нормального релиза, где есть фичи от прошлых версий и фичи от будущих.
а найти именно его я не могу.

Hastya

а++++++++++++++++++++++++++ мне нужен именно Created-By: 1.4.2_17-b06 (Sun Microsystems Inc.)
это он и есть скорее всего, b06 можно игнорировать

markyzz

это он и есть скорее всего, b06 можно игнорировать
вот им и собирал в первую очередь.
общий смысл ошибок:
Connection.java:7: '.' expected
import ab;
и точку он хочет поставить вмето точки с запятой

markyzz

это он и есть скорее всего
и еще забыл добавить, что с джавой совсем поверхностное знакомство... - и как в ней правильно компилить - я хз. На поверхности, вроде - все просто.
если ты имеешь с ней хоть какой-нить опыт общения, то я буду дико признателен, если ты соберешь этот ебучий архив. Могу прислать его исходник, его декомпилированный вариант (один java-файл и class-файлы сопутствующие ему и соотвествующий JDK.

freezer

я - джавист тоже никакой, но судя по сообщению, он не находит пэкэдж ab

markyzz

-classpath вроде указан...

markyzz

-classpath вроде указан...
ага... и, блин, по-ходу, неправильно...
вот тут рассказывают про еблю с classpath:
http://www.ibm.com/developerworks/ru/library/j-classpath-win...
по-ходу, моя проблема...
вот надо ж было такие камни понаоставлять....

psm-home

я разобрал jar, который был собран на 1.4.2_17-b06
Декомпилировал каким нибудь jad или fernflower?
Так никто не обещал, что результат работы декомпилятора вообще можно скомпилировать обратно.

markyzz

Декомпилировал каким нибудь jad или fernflower?
Так никто не обещал, что результат работы декомпилятора вообще можно скомпилировать обратно.
декомпилировал DJ Java Decompiler, но не в этом суть, наверное.
Мне же вон - выше подсказали, что ругань на точку с запятой в строке
 import имя_класса; 
указывает на то, что компилятор не видит этого класса.
Более того, какой бы путь я не указывал в -classpath, ругань остается той же. Пробовал даже указывать путь, которого нет :) - результат тот же.
То есть, такое ощущение, что реально в джаве имеет значение организация папок и архивов. Но как это все устроено - я не копенгаген....

markyzz

во... люди, подскажите, как собрать это дерьмищще!
написал болванки классов:
файл a.java:
 
public class a
{
}

файл b.java
  
import a;
public class b
{
}

Собрал класс a.class (тут было все нормально)
после этого удалил java-исходник, оставив только a.class
далее попробовал собрать класс b - ругается на все ту же строчку с импортом класса а
после этого, попробовал указать в аргументах компилятора -classpath на директорию (в которой лежит класс a) - снова хрен
Подскажите, плиз, что я не так в командной строке фигачу:
в этой директории C:\hellojava лежат в даный момент два файла: a.class и b.java

psm-home

Ты пытаешься импортировать класс из default package
import a;  

это запрещено спецификацией языка, поэтому у тебя не работает. Классы, которые ты пытаешься подправить видимо были обфускатором обработаны.

markyzz

это запрещено спецификацией языка
э.... а как тогда?
то есть вот тупо как собрать два пустых файла, которые лежат в одной папке и один из них класс?
и тот, который не класс, вызывает импорт того, который класс?

markyzz

Классы, которые ты пытаешься подправить видимо были обфускатором обработаны.
возможно. Даже и не спорю. Почитал про обфускаторы - они, вроде, как говорит гугл, запутывают логику выполнения программы. Но, между тем, я же вижу именно тот код, который мне надо было увидеть после декомпиляции. Даже если в исходном архиве нафигачили сотню не делающих ничего (или просто гоняющих по лабиринту переменные) классов, они же остались там не измененными. И я ничего не меняю, собственно. Вот, в общем, вопрос.

katrin2201

Совсем убери импорты. Классы из одного пекеджа не обязаны импортить друг друга для использования.

markyzz

Совсем убери импорты. Классы из одного пекеджа не обязаны импортить друг друга для использования.
да, так получается...
хм...
поставим вопрос по-другому, в файле b.java есть строчка import a; и ее оттуда никак не выбросить.
что нужно изменить, чтобы все скомпилировалось?
может, нужна еще какая-то строка или строчки в файлах a.java b.java? или может есть какие-то еще вещи о которых я, естественно, не знаю? может, ключики при компиляции или что-то еще....
в общем, как сделать, чтобы все собралось, если, как минимум в одном файле из двух есть import a;
при том import a; - он написан не как import d.c.b.e.r.t.a;
а вот именно import a; и ничего лишнего.

katrin2201

Ты сурсы выложить куда-нибудь можешь? Или тебе самому надо разобраться?

serega1604

убрать эту строку, нет?

markyzz

Ты сурсы выложить куда-нибудь можешь? Или тебе самому надо разобраться?
сорцы объемные... никого запаривать не хочется, да и один вот этот вот файлик, он, все-таки, не честный, а декомпилированный. Серж, молодчина - взялся посмотреть полный объем работ.
Но, почему я эту тему и назвал говно-мамонта, так это потому, что на предыдущих версиях JDK ругани на строчку "import a;" нет :)
а ничего в задаче не изменилось - в папке лежат два файла: a.class и b.java
(в файле b.java есть строчка import a;)
Компилировал на jdk1.3.1_28 - все нормально, все компилится.

Hastya

Компилировал на jdk1.3.1_28 - все нормально, все компилится.
Короче суть граблей в том, что класс в пакете пытается импортировать классы из default package. Это делать нельзя начиная с 1.4:
How to access java-classes in the default-package?
Почему тебе нужен 1.4, я так и не понял. Скорее всего такой класс соберется только 1.3.
Оставить комментарий
Имя или ник:
Комментарий: