From af63e7f87c4980db71b18dda95cd0b1036347dcf Mon Sep 17 00:00:00 2001 From: green Date: Mon, 21 Aug 2000 06:05:20 +0000 Subject: Sun Aug 20 21:02:48 2000 Anthony Green * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35829 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/lang/System.java | 9 +++++++-- libjava/java/lang/natSystem.cc | 41 +++++++++++++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 10 deletions(-) (limited to 'libjava/java/lang') diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java index b94c259195b..52dbe75988e 100644 --- a/libjava/java/lang/System.java +++ b/libjava/java/lang/System.java @@ -19,6 +19,7 @@ import java.io.PrintStream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.util.Properties; +import java.util.PropertyPermission; /** * @author Tom Tromey @@ -132,8 +133,12 @@ public final class System properties = props; } - // TODO 1.2. - // public static String setProperty (String key, String value); + public static String setProperty (String key, String value) + { + if (secman != null) + secman.checkPermission (new PropertyPermission (key, "write")); + return (String) properties.setProperty (key, value); + } // TODO 1.2. // public static String mapLibraryName (String libname); diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc index 2d82c896a07..81f7860dad0 100644 --- a/libjava/java/lang/natSystem.cc +++ b/libjava/java/lang/natSystem.cc @@ -32,6 +32,7 @@ details. */ #include #include #include +#include #include #include #include @@ -216,7 +217,7 @@ java::lang::System::init_properties (void) // (introduced in 1.2), and earlier versioning properties. SET ("java.version", VERSION); SET ("java.vendor", "Free Software Foundation"); - SET ("java.vendor.url", "http://sourceware.cygnus.com/java/"); + SET ("java.vendor.url", "http://sources.redhat.com/java/"); SET ("java.class.version", GCJVERSION); SET ("java.vm.specification.version", "1.1"); SET ("java.vm.specification.name", "Java(tm) Virtual Machine Specification"); @@ -263,13 +264,6 @@ java::lang::System::init_properties (void) } #endif /* HAVE_UNAME */ - char *classpath = ::getenv("CLASSPATH"); - // FIXME: find libgcj.zip and append its path? - if (classpath != NULL) - SET ("java.class.path", classpath); - else - SET ("java.class.path", "."); - #ifndef NO_GETUID #ifdef HAVE_PWD_H uid_t user_id = getuid (); @@ -353,4 +347,35 @@ java::lang::System::init_properties (void) i++; } } + + // FIXME: find libgcj.zip and append its path? + char *classpath = ::getenv("CLASSPATH"); + jstring cp = properties->getProperty (JvNewStringLatin1("java.class.path")); + java::lang::StringBuffer *sb = new java::lang::StringBuffer (); + + if (_Jv_Jar_Class_Path) + { + sb->append (JvNewStringLatin1 (_Jv_Jar_Class_Path)); +#ifdef WIN32 + sb->append ((jchar) ';'); +#else + sb->append ((jchar) ':'); +#endif; + } + if (classpath) + { + sb->append (JvNewStringLatin1 (classpath)); +#ifdef WIN32 + sb->append ((jchar) ';'); +#else + sb->append ((jchar) ':'); +#endif; + } + if (cp != NULL) + sb->append (cp); + else + sb->append ((jchar) '.'); + + properties->put(JvNewStringLatin1 ("java.class.path"), + sb->toString ()); } -- cgit v1.2.3