Building the JDK on Debian GNU/Linux
Ivan Tarasov writes "Ever wanted to hack the JDK sources to get rid of some nasty bug which bothered you for so long, but was embarrassed by the complexity of the JDK build process? Now you have a good tutorial on how to do it on Debian GNU/Linux: last night I posted a blog entry on how to build the JDK 6 (sources of which are available at the Peabody site). This entry describes in detail which packages you need installed, how do you tweak the sources to make them buildable and how to proceed with the build. The build process for other Linux distributions must be very similar, so don't turn away if you don't use Debian. There is also a nice blog entry by Cay Horstmann "Honey, I built the JDK! (on Ubuntu)"."
When the code gets complex to a high degree, how can you ever be sure it's a bug in the JDK versus a bug in your code?
--I gots 99 problems but a new machine ain't one!
AMD! Asus! Whoot! 6 years!
> "Ever wanted to hack the JDK sources to get rid of some nasty bug which bothered you for so long, but was embarrassed by the complexity of the JDK build process?"
=> no.
BoD
If teh GCC was written in Java and Java was fully self hosted, build times would be reduced thanks to the miracle of JIT compilation. What else are you doing with that 20GB of RAM anyway?
Just want to mention GCJ, the java native compiler, part of the GNU tools. It still has quite a way to go, but for some standalone applications it is getting quite nifty. I am not sure what niche it fills yet but linking a native binary built from java source code feels strange.
Warhammer forums
Ever wanted to hack the JDK sources to get rid of some nasty bug which bothered you for so long, but was embarrassed by the complexity of the JDK build process?
No... I have a life.
Thank you... Thank you... I'll be here all night...
I've heard Java is to be open sourced, but what is the JDK license at the moment? To what extent can I modify and redistribute?
Don't thank God, thank a doctor!
"I eventually solved this by using dpkg to build a one-on-one package from the JDK binary tree and told it to provide "java-virtual-machine, java2-runtime" and to make it conflict with: "kaffe, java1-runtime, java-compiler, fastjar, libjessie-java, java-common, gcj-4.0, ecj, ecj-bootstrap-gcj" after which I finally managed to get rid of the open source abominations once and for all."
:)
Why do it the easy way with make-jpkg and the alternatives system when you can do above
Because make-jpkg doesn't get rid of the open source variants, and after having wasted too much time on that software wondering why my study projects don't work I simply want them totally gone from my system. Another issue is keeping multiple JDK versions around.
make-jpkg is a good program but can't do all of this. There is also the fact that this software has been build around the current Java release, and there is no telling how it might cope with future releases (granted: this is a minor issue).
As you may know there are several Java versions around and now that Netbeans 5 has native support for maintaining and using several JDK's I also want to be able and actually keep several versions around. For example; at some customer places they're working with 1.5-6 and at the moment Sun released 1.5-8. Its pretty common and practical to use the latest JRE / JDK for home/private use but its not how its done in the real world. Now, I guess I could keep a strict eye open for features specific to >1.5-6 and try to be sure not to use them on my clients projects but why make it harder on myself just to conform to the "Debian way of doing things" ?
I'd rather use the approach which works for me instead. Which is packaging up the JDK in such a way where I can keep multiple versions lying around, then I simply assign the 1.5-6 JDK to my customer projects and let Netbeans sort out my code to make sure that the software I'm writing actually works on the JVM they're meant for.
I don't get your problem, if you don't want any of the OS java environments: uninstall them. Any java package that depends on any specific OS JVM is either not a java package or has a broken dependency (it should depend on java2-runtime)
/usr/local and adjust $JAVA_HOME or symlinks when needed.
But to be honest: I don't use any java packages in any distro. Since client projects tend to be a mix and match of different versions of applications and JVMs I just install them all by hand in
e.g.Simple, no?
Sorry, it would look nicer if slashdot accepted preformatted text
which is still too much for the average end user who just wants to run azureus... I hope the gcj based compiles are replaced by the native sun jdk in the next version now the license issues are cleaned up, as good as gcj is, the native java is almost twice as fast....
Well, I'm sorry but perhaps as long as Sun is incapable of providing a good freely distributable java packages, that can be packaged easily in linux distro's on all arches (still haven't seen a good Sun jdk for linux-ppc), there is a need for a better and free java. I think java isn't used more on linux exactly because it choose not to play along with the ideals of the movement. That's fine, but do not complain about that. If Sun wants to make java prevalent on linux systems they should really free it. It's fine if they do not.
Eventually gcj will become better. Or maybe not. For some apps it works quite nicely already. But for the moment, I happily stay with a more free language like C. Even although it has problems. It works best on my systems.
Again let me make clear that I have nothing against java itself. It just doesn't work/integrate well on my system. So a java app can never really take off on linux. That's too bad. But as you say, live and let live, we just search for alternatives.
the average end user who just wants to run azureus can find sun's java in synaptic just fine, though some way to ask if you want sun's java to be the default when you install it would be nice (not sure how to do this though, changing things without asking is always a bad idea, and asking for user input is not an option with dpkg)
A mouse is a device used to point to the xterm you want to type in
http://blogs.sun.com/navi/entry/try_this_at_home_b uilding
"Does java still take an hour and a half to compile 'hello troll!' on my 486?
Posted by trolly troller on August 26, 2006 at 05:12 PM PDT "