John, et al.:
I'm planning to put up a dev test of the Android SDK, but it requires openJDK to run.
Accordingly, I'm wondering as to the status of OpenJDK Portable. The last reference I've found to it is in the Eclipse 3.7.1 thread, where it has been indicated as being in testing. Are there any updates that can be made at this time, or should I be bundling the JDK for now?
I posted on the "Apps Ready For Official Release":
<Do we know what the proper appinfo.ini syntax will be for needing the JDK? If it's something like "UsesJDK" those of us who need it can add it in as commented code before hand. For BlueJ, I'm creating a standalone version that will be "updated" alongside the normal releases until the JDK comes out.>
John replied:
<Unfortunately, PAL will need an update to properly look for it based on a launcher.ini entry. Until then, we'll need to do custom code like we used to for Java.
As for the AppInfo.ini, I think UsesOpenJDK would make sense. Is there an official word on OpenJDK becoming the official JDK in place of the Oracle one at some point? Don't answer here. I think we should break this out into a separate forum post though as this post is only for announcing when you have an app ready for release (and all of this will be deleted). So, please create a new forum post and we'll go from there.>
I hope this particular thread becomes the place to discuss this, because I have heard nothing else about the JDK either. My app, BlueJ Portable, uses the JDK, and I actually have 2 versions currently: one employing the rather old OpenJDK 6.0.21 release, and one employing the OpenJDK 7 reference build.
Personally, I haven't heard anything about OpenJDK becoming the standard, but after a little digging, it seems like the OpenJDK project will be the basis for JDK 8, whenever that comes out. (Sources: http://en.wikipedia.org/wiki/OpenJDK and http://openjdk.java.net/projects/jdk8/)
Ok, that makes sense. So we'll need JDK and OpenJDK. I'm still hoping to get JDK permission from Oracle, but barring that, we'll just do OpenJDK.
The other big is, how to handle OpenJDK vs jPortable. One nice thing about OpenJDK is that it includes a full JVM in it. So, theoretically, we could let folks just use that and have things like jPortable Launcher and LibreOffice point to the JVM within, I think.
I know we'd talked about this a while back either on here or IRC about having PAL do fallbacks. So, if you have Java set as a dependency, it'll check for jPortable first and, if not found, then use the JVM within OpenJDK. This has the added benefit of us enabling folks to use Java-based open source apps and still keep a fully open source toolchain (platform to app to java). I'm not sure where this was left by Aluisio and Chris, though. I think we should get that sorted before describing how we'll handle it in appinfo.ini.
Sometimes, the impossible can become possible, if you're awesome!
Maybe they don't have to be mutually exclusive. Is there a way to determine where the OpenJDK would install it's version of the JVM? If we can tell jPortable to install to that location too, it might reduce the footprint.
For example, if we had jPortable install to CommonFiles\JDK\jre and then the JDK installer would only install the development parts around it. I don't know how difficult that would be, but I'd gladly test it (or aid in trying to get it to work) once the okay is given.
If you package JRE vs JDK as JRE being a subset, you could do something like
Java\jre\JRE STUFF HERE
JAVA\EVERTHING ELSE IS JDK
As I made a personal installer to extract JDK and I use that with my Netbeans Beta Test app. It has a jre folder in it, but I also have both versions of jPortable and both versions of jPortable launcher, all of which have their own JVM.
Effectively, have jPortable - JDK only put the jre folder in, and the JDK adds everything else, with jPortable being a prereq for JDK (or you could make a package include both, but the prereq saves bandwidth for those wanting to add JDK to JRE).
That's a much better way of explaining it. I guess it would work kind of like how the Installer Portable uses NSIS Portable. Do you have an OpenJDK version of the installer you mentioned? Maybe we can use it as a basis for moving forward with this project.
No I don't have OpenJDK nor have I ever used OpenJDK. I use ResHacker to get cab files out of the proprietary Oracle JDK installer, as ResHacker (not 7zip or anything else), can get them. Sometimes they change spots in the resource list.
OpenJDK can probably be installed, and copied to a PAF installer and freely distributed.
I wanted to try to make a JDK test for future reference, and I'm not sure how to package it so it installs to CommonFiles. I'm probably overlooking something bleedingly obvious, but I can't figure it out. Thanks in advance if anyone has an easy way; I enjoy learning new things about PA.c.
This is what you are after.
Thanks a lot winterblood. I didn't even see that in the documentation the first time around.
I gave a shot at creating a packaged OpenJDK 6 and 7 (separate). The result is posted here. I'll be testing it myself but external testing is always needed.
I'm currently working on it. OpenJDK windows binaries are hard to get by. Some third-parties have made them, but none of them are updated. I'm working on compiling my own copy at the moment.
http://stas-blogspot.blogspot.com/2012/09/building-openjdk-on-windows.html
The ones I ended up using are OpenSCG's OpenJDK6 and the reference build of OpenJDK7. So if you can get more up to date versions, I'll take mine down.
Those are the same versions I found. I truthfully wouldn't touch either just due to security issues though.
I know it probably takes a while to get working right, but any word on a secure build?
Yes, I got my environment setup for compile. Towards the end, it's complaining about an error with jvm.dll.
This was on a Windows 8 build, so I'm retrying on 7 at the moment.
Edit: I have a very strong guess that the issue was the fact that I was compiling x86 OpenJDK with 64-bit bootstrapped JDK7.
Thanks again for trying to do this. I have a strong feeling that if you get this working, it will make John's job that much easier to get this official.
OpenJDK 7 Update 9 (latest) has been compiled and uploaded. It's available for testing at the link below.
https://portableapps.com/node/35441
I got Eclipse Portable running off that build and compiling Java projects, but I'd like testing with BlueJ and Netbeans.
Once I got BlueJ to behave for me on Windows 8 (I think it was SmartScreen messing with me), I recompiled a project I had laying around. The build worked perfectly. Kudos to you for making something much more awesome. I'm going to try to get a testing version of BlueJ that depends on your OpenJDK release out within the next week or so.
Managed to compile and run a Hello World test with Netbeans.