diff options
author | Anthony Green <green@gcc.gnu.org> | 2000-08-21 06:05:20 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2000-08-21 06:05:20 +0000 |
commit | 1a558147d192b81f718a55056d2467221dfeb5de (patch) | |
tree | f43cbb5fc8ea1cd44134f23db03b2228cc3604df /libjava/prims.cc | |
parent | b485e15bf861b6eb5680c3a268036b2cdeacd656 (diff) | |
download | gcc-1a558147d192b81f718a55056d2467221dfeb5de.zip gcc-1a558147d192b81f718a55056d2467221dfeb5de.tar.gz gcc-1a558147d192b81f718a55056d2467221dfeb5de.tar.bz2 |
natSystem.cc (init_properties): Change sourceware reference to sources.redhat.com.
Sun Aug 20 21:02:48 2000 Anthony Green <green@redhat.com>
* java/lang/natSystem.cc (init_properties): Change sourceware
reference to sources.redhat.com.
* include/java-props.h: Add _Jv_Jar_Class_Path.
* prims.cc: Ditto. Set it from `gij -jar file' option.
* java/lang/natSystem.cc (init_properties): Set java.class.path
from
{gij -jar file}:{CLASSPATH variable}:{-Djava.class.path= or .}
* java/util/PropertyPermission.java: Import from GNU Classpath.
* Makefile.in: Rebuilt.
* Makefile.am: Add java/util/PropertyPermission.java.
* java/lang/System.java: Add setProperty method.
* gij.cc (main): Add -jar option to execute jar files.
(help): Describe -jar option.
* prims.cc (_Jv_RunMain): Add support for jar execution mode.
* gnu/gcj/tools/Gij.java: New file.
* include/jvm.h: Add is_jar argument to _Jv_RunMain.
* gnu/gcj/runtime/FirstThread.java (main): New method.
* java/util/jar/Attributes.java: Correct comment spelling.
From-SVN: r35829
Diffstat (limited to 'libjava/prims.cc')
-rw-r--r-- | libjava/prims.cc | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/libjava/prims.cc b/libjava/prims.cc index 817b0a8..38714b3 100644 --- a/libjava/prims.cc +++ b/libjava/prims.cc @@ -79,6 +79,9 @@ static java::lang::OutOfMemoryError *no_memory; // Properties set at compile time. const char **_Jv_Compiler_Properties; +// The JAR file to add to the beginning of java.class.path. +const char *_Jv_Jar_Class_Path; + #ifndef DISABLE_GETENV_PROPERTIES // Property key/value pairs. property_pair *_Jv_Environment_Properties; @@ -888,8 +891,9 @@ JvRunMain (jclass klass, int argc, const char **argv) } void -_Jv_RunMain (const char *class_name, int argc, const char **argv) +_Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) { + jstring class_name; PROCESS_GCJ_PROPERTIES; main_init (); @@ -900,12 +904,31 @@ _Jv_RunMain (const char *class_name, int argc, const char **argv) _Jv_ThisExecutable (exec_name); #endif + if (is_jar) + { + _Jv_Jar_Class_Path = strdup (name); + arg_vec = JvConvertArgv (1, &_Jv_Jar_Class_Path); + + main_thread = + new gnu::gcj::runtime::FirstThread (&_CL_Q43gnu3gcj7runtime11FirstThread, + arg_vec); + main_thread->start(); + _Jv_ThreadWait (); + + class_name = gnu::gcj::runtime::FirstThread::jarMainClassName; + } + else + class_name = JvNewStringLatin1 (name); + arg_vec = JvConvertArgv (argc - 1, argv + 1); - main_thread = new gnu::gcj::runtime::FirstThread (JvNewStringLatin1 (class_name), - arg_vec); - main_thread->start(); - _Jv_ThreadWait (); + if (class_name) + { + main_thread = new gnu::gcj::runtime::FirstThread (class_name, arg_vec); + main_thread->start(); + _Jv_ThreadWait (); + } + java::lang::Runtime::getRuntime ()->exit (0); } |