Commit 7d6d782d by Bryce McKinlay Committed by Bryce McKinlay

prims.cc (_Jv_RunMain): Use JvNewStringUTF for command-line class name, not Latin1.

2006-05-31  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (_Jv_RunMain): Use JvNewStringUTF for command-line class
	name, not Latin1.
	* gnu/java/lang/MainThread.java (run): Allow file separator char to
	be used in place of '.' as class-name separator. Don't chain
	ClassNotFoundException.

From-SVN: r114300
parent f3d5aeeb
2006-05-31 Bryce McKinlay <mckinlay@redhat.com>
* prims.cc (_Jv_RunMain): Use JvNewStringUTF for command-line class
name, not Latin1.
* gnu/java/lang/MainThread.java (run): Allow file separator char to
be used in place of '.' as class-name separator. Don't chain
ClassNotFoundException.
2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com> 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/lang/VMClassLoader.java (initialize): Set default library * java/lang/VMClassLoader.java (initialize): Set default library
......
...@@ -39,6 +39,7 @@ exception statement from your version. */ ...@@ -39,6 +39,7 @@ exception statement from your version. */
package gnu.java.lang; package gnu.java.lang;
import java.io.File;
import java.util.jar.Attributes; import java.util.jar.Attributes;
import java.util.jar.JarFile; import java.util.jar.JarFile;
...@@ -91,13 +92,14 @@ final class MainThread extends Thread ...@@ -91,13 +92,14 @@ final class MainThread extends Thread
{ {
try try
{ {
klass = Class.forName(klass_name, true, ClassLoader cl = ClassLoader.getSystemClassLoader();
ClassLoader.getSystemClassLoader()); // Permit main class name to be specified in file-system format.
klass_name = klass_name.replace(File.separatorChar, '.');
klass = cl.loadClass(klass_name);
} }
catch (ClassNotFoundException x) catch (ClassNotFoundException x)
{ {
NoClassDefFoundError ncdfe = new NoClassDefFoundError(klass_name); NoClassDefFoundError ncdfe = new NoClassDefFoundError(klass_name);
ncdfe.initCause(x);
throw ncdfe; throw ncdfe;
} }
} }
......
...@@ -1524,7 +1524,7 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc, ...@@ -1524,7 +1524,7 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
if (klass) if (klass)
main_thread = new MainThread (klass, arg_vec); main_thread = new MainThread (klass, arg_vec);
else else
main_thread = new MainThread (JvNewStringLatin1 (name), main_thread = new MainThread (JvNewStringUTF (name),
arg_vec, is_jar); arg_vec, is_jar);
} }
catch (java::lang::Throwable *t) catch (java::lang::Throwable *t)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment