Index: trunk/zoo-project/zoo-kernel/service_internal_java.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 351)
+++ trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 352)
@@ -35,11 +35,18 @@
   char oclasspath[2068];
   int res=SERVICE_FAILED;
+  char *cclasspath=getenv("CLASSPATH");
   if(tmp!=NULL){
-    sprintf(classpath,"%s/%s/:$CLASSPATH",ntmp,tmp->value);
-    sprintf(oclasspath,"-Djava.class.path=%s/%s",ntmp,tmp->value);
+    if(cclasspath!=NULL)
+      sprintf(classpath,"%s/%s/:%s",ntmp,tmp->value,cclasspath);
+    else
+      sprintf(classpath,"%s/%s/",ntmp,tmp->value);
+    sprintf(oclasspath,"-Djava.class.path=%s",classpath);
   }
   else{
-    sprintf(classpath,"%s:$CLASSPATH",ntmp);
-    sprintf(oclasspath,"-Djava.class.path=%s",ntmp);
+    if(cclasspath!=NULL)
+      sprintf(classpath,"%s:%s",ntmp,cclasspath);
+    else
+      sprintf(classpath,"%s/%s/",ntmp,tmp->value);
+    sprintf(oclasspath,"-Djava.class.path=%s",classpath);
   }
 #ifdef DEBUG
@@ -59,8 +66,8 @@
   int i;
 
-  options[0].optionString = oclasspath;
-
-  vm_args.version = JNI_VERSION_1_2;
+  options[0].optionString = strdup(oclasspath);
+
   JNI_GetDefaultJavaVMInitArgs(&vm_args);
+  vm_args.version = JNI_VERSION_1_6;
   vm_args.options = options;
   vm_args.nOptions = 1;
@@ -89,5 +96,5 @@
     free(err);
     (*jvm)->DestroyJavaVM(jvm);
-    return 1;
+    return -1;
   }
 #ifdef DEBUG
