Saturday, April 21, 2007


Yesterday a tried to see what happens if I set _JAVA_LAUNCHER_DEBUG environment varable. So, I have set _JAVA_LAUNCHER_DEBUG=true, and started an application...
In Cygwin, for instance:

ant@jupiter ~
$ export _JAVA_LAUNCHER_DEBUG=true

ant@jupiter ~
$ java -version
JRE path is c:\jdk1.5.0_11\jre
jvm.cfg[0] = ->-client<-
jvm.cfg[1] = ->-server<-
jvm.cfg[2] = ->-hotspot<-
name: -hotspot vmType: VM_ALIASED_TO alias: -client
jvm.cfg[3] = ->-classic<-
jvm.cfg[4] = ->-native<-
jvm.cfg[5] = ->-green<-
1530 micro seconds to parse jvm.cfg
Default VM: client
JVM path is c:\jdk1.5.0_11\jre\bin\client\jvm.dll
6299 micro seconds to LoadJavaVM
JavaVM args:
version 0x00010002, ignoreUnrecognized is JNI_FALSE, nOptions is 2
option[ 0] = '-Djava.class.path=.;C:\Program Files\Java\jre1.6.0\lib\ext\'
option[ 1] = ''
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode)

OK, nice, it works... I have set _JAVA_LAUNCHER_DEBUG=false and continued with my work.

In a few minutes I wanted to compile some application using IntelliJ IDEA, but as the compilation process stared the IDE just hanged and did nothing. Restarting the IDE didn't help. Confused! I've reinstalled IDEA, upgraded to a new version even - nothing helped - it just hanged when I tried to compile anything.

Damn! I memorized now about the environment variable I've set. Removed that. IDEA compilation succeeded.

The moral is that JVM doesn't care which value is set to _JAVA_LAUNCHER_DEBUG: either 'true' or 'false'. It could be 'foo', 'bar' or 'John Doe' as well - JVM requires this environment variable to be set for debugging and doesn't need the value at all.

Wednesday, April 18, 2007

JSR 223: Scripting for Java

As Charles Nutter suggested, I decided to try javax.scripting API. The Java 6 Revealed book has a nice chapter on JSR 223 and also an example of Pnuts integration with JVM.
I have downloaded the other engines from It seems that for my SOC project it is reasonable to use Java 6. Virtually it will be possible to write plug-ins in any scripting language for which the engine is available. We could even use combination of many languages, just selecting the relevant engine by name or file extension:

ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine groovyEngine = m.getEngineByName("groovy");
ScriptEngine jrubyEngine = m.getEngineByName("jruby");

The full list of the scripting engines is available at

Monday, April 16, 2007

Google Summer of Code 2007

My application to Google Summer of Code was accepted! Now the summer will be full of fun of Groovy and JRuby plug-in implementation to Eclipse.

Why I decided to participate? Don't know. Maybe I'm starting to get bored by writing JDBC applications all the time, will see how it turns out.

Sunday, April 15, 2007

Office Space

Just realized now I'm getting short of space... No as bad as the codehoopers but it is getting dangerous. I think I need a second level table on the wall and I definitely require a new chair. Thank god I have a Wi-Fi router now and don't have to drag the Ethernet cables all around :)

Disqus for Code Impossible