diff options
author | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-26 19:25:13 +0000 |
---|---|---|
committer | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-26 19:25:13 +0000 |
commit | ac96e9f0c156bca8ecfd01792509e39aa6f3b7ff (patch) | |
tree | ec60dfe7b11606b3c5c1d32bb2b29e9dd37d5be1 /libjava/gnu/gcj/runtime | |
parent | 69bb8d03035473dfec3a2c5d43738995a2b6c09e (diff) | |
download | gcc-ac96e9f0c156bca8ecfd01792509e39aa6f3b7ff.tar.gz |
2000-08-26 Anthony Green <green@redhat.com>
* Makefile.in: Rebuilt.
* Makefile.am (java/lang/ClassLoader.h): Make _Jv_RunMain a
friend.
* prims.cc: Include ClassLoader.h.
(_Jv_RunMain): When executing jar files, classpath must be the jar
file only. Lose our reference to the system ClassLoader in order
to get a new one with the correct classpath.
* java/lang/natSystem.cc (init_properties): When executing a jar
file, only use the jar file for java.class.path.
* gnu/gcj/runtime/VMClassLoader.java: Use the canonical file name
for bytecode archives.
* gnu/gcj/runtime/FirstThread.java: Handle case where manifest
exists, but not Main-Class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35999 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/gcj/runtime')
-rw-r--r-- | libjava/gnu/gcj/runtime/FirstThread.java | 10 | ||||
-rw-r--r-- | libjava/gnu/gcj/runtime/VMClassLoader.java | 11 |
2 files changed, 17 insertions, 4 deletions
diff --git a/libjava/gnu/gcj/runtime/FirstThread.java b/libjava/gnu/gcj/runtime/FirstThread.java index 21022250713..8cf477fad55 100644 --- a/libjava/gnu/gcj/runtime/FirstThread.java +++ b/libjava/gnu/gcj/runtime/FirstThread.java @@ -55,11 +55,15 @@ final class FirstThread extends Thread jarMainClassName = a.getValue(Attributes.Name.MAIN_CLASS); - } catch (Exception e) { - - System.err.println ("Failed to load Main-Class manifest attribute from\n" + args[0]); + if (jarMainClassName != null) + return; + } catch (Exception e) { + // empty } + + System.err.println ("Failed to load Main-Class manifest attribute from\n" + + args[0]); } // If interpreter is invoked with -jar, the main class name is recorded diff --git a/libjava/gnu/gcj/runtime/VMClassLoader.java b/libjava/gnu/gcj/runtime/VMClassLoader.java index ae0a0ebb20a..77051d253b7 100644 --- a/libjava/gnu/gcj/runtime/VMClassLoader.java +++ b/libjava/gnu/gcj/runtime/VMClassLoader.java @@ -34,7 +34,16 @@ final class VMClassLoader extends java.net.URLClassLoader try { if (e.endsWith(".jar") || e.endsWith (".zip")) - p.addElement(new URL("jar", "", -1, "file:///"+e+"!/")); + { + File archive = new File (e); + try { + p.addElement(new URL("jar", "", -1, "file://" + + archive.getCanonicalPath () + + "!/")); + } catch (IOException ex) { + // empty + } + } else if (e.endsWith ("/")) p.addElement (new URL("file", "", -1, e)); else if (new File (e).isDirectory ()) |