Зачем это нужно?
Чтоб вместо такого:

при отладке стандартной библиотеки Java видеть такое>>

Делал на основе подходов, описанных по ссылкам:
www.javalobby.org/java/forums/t103334.html
forums.sun.com/thread.jspa?threadID=428018&tstart=1620
www.javalobby.org/java/forums/t19866.html
Как? В двух словах: перекомпилировать src.zip из JDK с указанием опции компилятор -g.
Необходимые условия: установленные JDK & python.
По шагам. Создаём где-нибудь пустую папочку, для определенности D:/rt_debug, разархивируем в неё src.zip и rt.jar из вашей инсталляции JDK. Я проделывал эту процедуру со свежеустановленной jdk-6u20. Таким образом, у вас в D:/rt_debug обраузется 2 папки D:/rt_debug/rt и D:/rt_debug/src. Создаём в этой же папке скрипт gen_compile_files_list.py следующего содержания:
Этот код сгенерит компилящийся список .java-файлов в файле to_compile.txt. Дело в том, что src.zip как оказалось имеет некоторые исходники, которых нет в rt.jar (так думаю, для обратной совместимости?), наличие которых ломает компиляцию.
После запуска скрипта у вас появится файл to_compile.txt. Затем, создаём файл c.bat следующего содержания (поправьте пути на ваш java_home):
или же, если Вы — пользователь линукса, то c.sh содержанием:
(скрипт тестировался на MSYS).
В результате, если всё пойдет хорошо (проверьте error.log в самом конце, там должны быть только warning'и), вы получите файл rt-dbg.jar в той же директории.
Затем, чтоб заставить java'у использовать классы из этой сборки, надо запускать её с ключиком
По ссылкам выше говорят, что можно закидывать в endosed директорию вашей инсталляции Java, но у меня этот путь не работал.
Приведенный выше код можно скачать по ссылке.
UPD. rt-dbg.jar (17 мб)
Чтоб вместо такого:

при отладке стандартной библиотеки Java видеть такое>>

Делал на основе подходов, описанных по ссылкам:
www.javalobby.org/java/forums/t103334.html
forums.sun.com/thread.jspa?threadID=428018&tstart=1620
www.javalobby.org/java/forums/t19866.html
Как? В двух словах: перекомпилировать src.zip из JDK с указанием опции компилятор -g.
Необходимые условия: установленные JDK & python.
По шагам. Создаём где-нибудь пустую папочку, для определенности D:/rt_debug, разархивируем в неё src.zip и rt.jar из вашей инсталляции JDK. Я проделывал эту процедуру со свежеустановленной jdk-6u20. Таким образом, у вас в D:/rt_debug обраузется 2 папки D:/rt_debug/rt и D:/rt_debug/src. Создаём в этой же папке скрипт gen_compile_files_list.py следующего содержания:
from os import walk
from os.path import join
def find(path, ext):
for dir, _, files in walk(path):
for f in files:
if f.endswith(ext):
yield join(dir, f)
#print '\n'.join(find('src', '.java'))
def go():
src_files = list(find('src', '.java'))
rt_files = list(find('rt', '.class'))
n_src = len(src_files)
n_rt = len(rt_files)
print 'java files:', n_src
print 'rt files:', n_rt
src_files=[s[4:-5] for s in src_files] # src/qqq.java -> qqq
rt_files = set([s[3:-6] for s in rt_files ]) # rt/qqq.class -> qqq
out = open("to_compile.txt", "w")
to_compile = 0
obsolete = 0
for j in src_files:
f = "%s.java\n" % j
if j in rt_files:
out.write(f)
to_compile += 1
else:
#print "Obsolete: ", f
obsolete += 1
print 'will compile:', to_compile
print 'obsolete:', obsolete
out.close()
go()
* This source code was highlighted with Source Code Highlighter.
Этот код сгенерит компилящийся список .java-файлов в файле to_compile.txt. Дело в том, что src.zip как оказалось имеет некоторые исходники, которых нет в rt.jar (так думаю, для обратной совместимости?), наличие которых ломает компиляцию.
После запуска скрипта у вас появится файл to_compile.txt. Затем, создаём файл c.bat следующего содержания (поправьте пути на ваш java_home):
@echo off
set JH=C:/Program Files/Java/jdk1.6.0_20
set VER=1.6
if not exist classes (
echo Creating classes dir
mkdir classes
)
echo Compiling...
cd src
"%JH%\bin\javac" -nowarn -g -d ../classes -J-Xmx512m -classpath ../rt -source %VER% -target %VER% @../to_compile.txt 2>../error.log
echo Creating jar...
cd ../classes
"%JH%\bin\jar" -cf ../rt-dbg.jar *
cd ..
echo Done.
* This source code was highlighted with Source Code Highlighter.
или же, если Вы — пользователь линукса, то c.sh содержанием:
JH="C:/Program Files/Java/jdk1.6.0_20"
VER=1.6
if ! [ -d classes ]; then
echo Creating classes dir
mkdir classes
fi
echo Compiling...
cd src
"$JH\bin\javac" -nowarn -g -d ../classes -J-Xmx512m -classpath ../rt -source $VER -target $VER @../to_compile.txt 2>../error.log
echo Creating jar...
cd ../classes
"$JH\bin\jar" -cf ../rt-dbg.jar *
echo Done.
* This source code was highlighted with Source Code Highlighter.
(скрипт тестировался на MSYS).
В результате, если всё пойдет хорошо (проверьте error.log в самом конце, там должны быть только warning'и), вы получите файл rt-dbg.jar в той же директории.
Затем, чтоб заставить java'у использовать классы из этой сборки, надо запускать её с ключиком
-Xbootclasspath/p:D:/rt_debug/rt-dbg.jar
По ссылкам выше говорят, что можно закидывать в endosed директорию вашей инсталляции Java, но у меня этот путь не работал.
Приведенный выше код можно скачать по ссылке.
UPD. rt-dbg.jar (17 мб)