Skip site navigation (1) Skip section navigation (2)

Проект FreeBSD Java®: JDK® 1.3

19 декабря 2003: Грег Льюис (Greg Lewis) выпустил обновлённый набор патчей (patchlevel 9) для программного пакета JDK 1.3.1 и соответствующим образом обновлённого порта ports/java/jdk13. Обновлённые патчи можно получить, как обычно, по адресу http://www.eyesbeyond.com/freebsddom/java/jdk13.html
В этот релиз включено множество исправлений и улучшений, так что, пожалуйста, перед тем, как сообщать о проблемах, выполните обновление.

12 февраля 2003: Грег Льюис (Greg Lewis) выпустил обновленный набор патчей (patchlevel 8) для программного обеспечения JDK® 1.3.1 и соответственно обновлённый порт ports/java/jdk13. Обновлённые патчи можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html
Это первый релиз программного обеспечения JDK 1.3.1, прошедший тесты Sun на совместимость. Он содержит множество исправлений и улучшений, поэтому пожалуйста сделайте обновление перед отправкой сообщения об ошибке.

26 июля 2002: Грег Льюис (Greg Lewis) выпустил обновленный набор патчей (patchlevel 7) для программного обеспечения JDK 1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html
Этот релиз содержит множество исправлений и улучшений, поэтому пожалуйста сделайте обновление перед отправкой сообщения об ошибке.

13 февраля 2002: Грег Льюис (Greg Lewis) выпустил обновленный набор патчей (patchlevel 6) для программного обеспечения JDK 1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html
Этот релиз содержит множество исправлений и улучшений, поэтому пожалуйста сделайте обновление перед отправкой сообщения об ошибке.

16 октября 2001: Грег Льюис (Greg Lewis) выпустил обновленный набор патчей (patchlevel 5) для программного обеспечения JDK 1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html
Этот релиз содержит множество исправлений и улучшений, поэтому пожалуйста сделайте обновление перед отправкой сообщения об ошибке.

10 сентября 2001: Грег Льюис (Greg Lewis) выпустил обновленный набор патчей (patchlevel 4) для программного обеспечения JDK 1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html
Этот релиз содержит множество исправлений и улучшений, поэтому пожалуйста сделайте обновление перед отправкой сообщения об ошибке.

27 августа 2001: Грег Льюис (Greg Lewis) выпустил долгожданный порт программного обеспечения JDK 1.3.1. Теперь его можно собрать из каталога портов ports/java/jdk13. Следует учесть, что все замечания ниже действуют, и этот релиз все еще предназначен только для разработчиков, не рекомендуется использовать его в реальных задачах.

16 июля 2001: Грег Льюис (Greg Lewis) выпустил набор патчей для разработчиков, интересующихся сборкой нативного FreeBSD JDK 1.3.1. Необходимо учесть, что это релиз только для разработчиков и работающий JDK не собирается. Патчи выпущены, в основном, для предоставления интересующимся возможности помочь усилиям по портированию, без того, чтобы начинать с самого начала. Патчи и некоторые общие инструкции по сборке можно загрузить с http://www.eyesbeyond.com/freebsddom/java/jdk13.html

15 сентября 2000: Эндрю Галлатин (Andrew Gallatin) и Шин О'Коннелл (Sean O'Connell) работают над получением рабочего пакета JDK 1.3 фирмы IBM. Чтобы он заработал в вашей системе, вам нужно применить патчи к некоторым исходным текстам FreeBSD. Они предоставили патчи в зависимости от вашей версии:
4.0-RELEASE
4.0-STABLE
-CURRENT (до SMPng)

Процитируем сообщение от Дрю:

Я наконец-то добился работы jdk 1.3 фирмы IBM. Хотя сильно я ещё её не
тестировал, похоже, что AWT работает.

Вот обновлённый набор патчей для версии -current до SMPng.  Набор патчей
делает следующее:

- меняет значение MINSIGSTKSZ с 8192  на 2048
- реализует linux_rt_sendsig() & linux_rt_sigreturn()
- реализует пользовательский код sigtramp для linux_rt_sigreturn()
- реализует linux_to_bsd_sigaltstack & bsd_to_linux_sigaltstack() для
	исправления ошибки в linux_sigaltstack & во избежание множества
	вставок в linux_rt_sigreturn().  Также исправлено появление сообщения
	"Java HotSpot(TM) Client VM warning: cannot uninstall alt signal stack",
	которое было замечено с JDK 1.3 фирмы Sun.
- изменен флаг MAP_STACK на MAP_ANON для отображаемых областей памяти
	LINUX_MAP_GROWSDOWN. Это был последний шаг для того, чтобы это
	работало. Найдутся ли гуру VM, чтобы поговорить об этом? Похоже, что
	что-то не так с растущими стеками в нитях linux[*]

Патчи находятся здесь: http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/diff

[*]"Проблема" в эвристических методах, применяемых в функции
vm_map_growstack() для определения того, является ли стек частью стека
основного процесса. Сейчас мы используем:

	is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr;

где vm->vm_maxsaddr получается из exec_new_vmspace():
	vmspace->vm_maxsaddr = (char *)USRSTACK - MAXSSIZ;

Главная нить JDK фирмы IBM уменьшает размер его стека до rlim_cur=2040*1024.
Затем она создает стеки для своих нитей в адресах, которые превышают
vm_maxsaddr, но меньше, чем текущая нижняя граница стека основного процесса,
как определено в p->p_rlimit[RLIMIT_STACK].rlim_cur. Как только нить пытается
обратиться к чему-либо, для чего требуется увеличения области, она погибает.
	

А теперь письмо от Шина:

Я на скорую руку засинхронизировался с изменениями, которые выполнил Эндрю
Галлатин для того, чтобы заработал Java SDK от IBM.  Я смог запустить
appletviewer с одним из демонстрационных приложений и оно работало.  Больше
сказать ничего не могу.

Все патчи сделаны относительно /usr/src (или /, потому что все они выполнены
в каталоге sys )

Большинство исправлений сделано в файлах из /sys/i386/linux.  Вы должны
смочь применить патч; перейдите в каталог /sys/modules/linux; наберите
make; kldunload linux; наберите make install; потом kldload linux

Есть ещё одно изменение, которое задаёт значение MINSIGSTKSZ равным 2048
в sys/sys/signal.h .. для актуализации этого изменения требуется перекомпиляция
ядра.
        

18 июля 2000: Эрнст де Хаан (Ernst de Haan) выполнил некоторую работу, что позволило запускать Linux JDK 1.3.0b9 фирмы Sun в 4.0-STABLE. Файл .java_wrapper находится по адресу здесь. (Не забудьте переименовать его в .java_wrapper)

Вот что пишет Эрнст:

Ещё один совет: Измените файл jre/lib/jvm.cfg и переместите последнюю строку
наверх.  Тогда вы получите:

   -classic
   -hotspot
   -server

Кстати, я получил следующее предупреждение при запуске Swing-приложения:

   Warning: Cannot convert string "MetaCtrl<Key>Insert" to type VirtualBinding

Ernst

Ernst de Haan пишет:
> Hi folkz,
>
> Мне удалось запустить Sun JDK 1.3.0 for Linux, beta 9 на моей системе FreeBSD
> 4.0-STABLE. Работает весьма хорошо.
>
> java -version выдаёт следующее:
>
>    bash-2.04$ java -version
>    expr: syntax error
>    java version "1.3.0beta_refresh"
>    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0beta_refresh-b09)
>    Classic VM (build 1.3.0beta_refresh-b09, green threads, nojit)
>
> Первая строка о синтаксической ошибке является маленькой проблемой с файлом
> .java_wrapper, но видимо, она несерьёзная. Я выполнил некоторые модификации
> в скрипте .java_wrapper, чтобы всё работало на моей системе. Прилагаю
> версию, которую я использую.
>
> Подробно я ещё не тестировал, однако попробовал запустить одно
> Swing-приложение. Я заметил некоторые отличия в шрифтах, хотя похоже, что
> всё работает достаточно хорошо и быстро :)
>
> Ого, скоро FreeBSD станет платформой с наибольшим количеством работающих
> на ней пакетов JDK, как только на ней заработает WINE, мы сможем запустить
> пакеты JDK ещё и для Windows, и ещё написать эмулятор AS/400, и ещё... и
> ещё... ;-)
>
> Ernst
>
> P.S.  Спасибо Виктору Саламану (Victor Salaman), который указал мне
>       правильное направление. Он достаточно давно работает с Sun JDK 1.3
>       for Linux.
        

29 января 2000: Работа над портированием JDK 1.3 ещё не началась. И до тех пор, пока не будет выпущен релиз JDK 1.2, работа над JDK 1.3 проводиться не будет.