< prev index next >

src/java.base/share/native/libjli/java.c

Print this page

        

@@ -1985,18 +1985,27 @@
 
     /* Initialize the usage message with the usual preamble */
     (*env)->CallStaticVoidMethod(env, cls, initHelp, jprogname);
     CHECK_EXCEPTION_RETURN();
 
-
     /* Assemble the other variant part of the usage */
     for (i=1; i<knownVMsCount; i++) {
       if (knownVMs[i].flag == VM_KNOWN) {
-        NULL_CHECK(vm1 =  (*env)->NewStringUTF(env, knownVMs[i].name));
+        char *longOpt = (char *)JLI_MemAlloc(JLI_StrLen(knownVMs[i].name) + 2);
+        *longOpt = '\0';
+        JLI_StrCat(longOpt, "-");
+        JLI_StrCat(longOpt, knownVMs[i].name);
+        NULL_CHECK(vm1 =  (*env)->NewStringUTF(env, longOpt));
         NULL_CHECK(vm2 =  (*env)->NewStringUTF(env, knownVMs[i].name+1));
         (*env)->CallStaticVoidMethod(env, cls, vmSelect, vm1, vm2);
         CHECK_EXCEPTION_RETURN();
+        JLI_MemFree(longOpt);
+        /* Mention the short option as a synonym */
+        NULL_CHECK(vm1 =  (*env)->NewStringUTF(env, knownVMs[i].name));
+        NULL_CHECK(vm2 =  (*env)->NewStringUTF(env, knownVMs[i].name+1));
+        (*env)->CallStaticVoidMethod(env, cls, vmSynonym, vm1, vm2);
+        CHECK_EXCEPTION_RETURN();
       }
     }
     for (i=1; i<knownVMsCount; i++) {
       if (knownVMs[i].flag == VM_ALIASED_TO) {
         NULL_CHECK(vm1 =  (*env)->NewStringUTF(env, knownVMs[i].name));

@@ -2195,10 +2204,11 @@
 static int
 KnownVMIndex(const char* name)
 {
     int i;
     if (JLI_StrCCmp(name, "-J") == 0) name += 2;
+    if (JLI_StrCCmp(name, "--") == 0) name += 1;
     for (i = 0; i < knownVMsCount; i++) {
         if (!JLI_StrCmp(name, knownVMs[i].name)) {
             return i;
         }
     }
< prev index next >