diff options
Diffstat (limited to 'libjava/gij.cc')
-rw-r--r-- | libjava/gij.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libjava/gij.cc b/libjava/gij.cc index 54674a9..7d53beb 100644 --- a/libjava/gij.cc +++ b/libjava/gij.cc @@ -24,8 +24,10 @@ details. */ static void help () { - printf ("Usage: gij [OPTION] ... CLASS [ARGS] ...\n\n"); - printf ("Interpret Java bytecodes\n\n"); + printf ("Usage: gij [OPTION] ... CLASS [ARGS] ...\n"); + printf (" to interpret Java bytecodes, or\n"); + printf (" gij -jar [OPTION] ... JARFILE [ARGS] ...\n"); + printf (" to execute a jar file\n\n"); printf (" -DVAR=VAL define property VAR with value VAL\n"); printf (" --help print this help, then exit\n"); printf (" --ms=NUMBER set initial heap size\n"); @@ -51,6 +53,7 @@ main (int argc, const char **argv) /* We rearrange ARGV so that all the -D options appear near the beginning. */ int last_D_option = 0; + bool jar_mode = false; int i; for (i = 1; i < argc; ++i) @@ -73,6 +76,12 @@ main (int argc, const char **argv) continue; } + if (! strcmp (arg, "-jar")) + { + jar_mode = true; + continue; + } + /* Allow both single or double hyphen for all remaining options. */ if (arg[1] == '-') @@ -120,9 +129,12 @@ main (int argc, const char **argv) if (argc - i < 1) { fprintf (stderr, "Usage: gij [OPTION] ... CLASS [ARGS] ...\n"); + fprintf (stderr, " to interpret Java bytecodes, or\n"); + fprintf (stderr, " gij -jar [OPTION] ... JARFILE [ARGS] ...\n"); + fprintf (stderr, " to execute a jar file\n"); fprintf (stderr, "Try `gij --help' for more information.\n"); exit (1); } - _Jv_RunMain (argv[i], argc - i, argv + i); + _Jv_RunMain (argv[i], argc - i, argv + i, jar_mode); } |