diff options
Diffstat (limited to 'netx/net/sourceforge')
-rw-r--r-- | netx/net/sourceforge/jnlp/AppletDesc.java | 2 | ||||
-rw-r--r-- | netx/net/sourceforge/jnlp/Launcher.java | 8 | ||||
-rw-r--r-- | netx/net/sourceforge/jnlp/PluginBridge.java | 4 | ||||
-rw-r--r-- | netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 5 |
4 files changed, 6 insertions, 13 deletions
diff --git a/netx/net/sourceforge/jnlp/AppletDesc.java b/netx/net/sourceforge/jnlp/AppletDesc.java index d5e492a..da8021e 100644 --- a/netx/net/sourceforge/jnlp/AppletDesc.java +++ b/netx/net/sourceforge/jnlp/AppletDesc.java @@ -73,7 +73,7 @@ public class AppletDesc { } /** - * Returns the main class name + * Returns the main class name in the dot-separated form (eg: foo.bar.Baz) */ public String getMainClass() { return mainClass; diff --git a/netx/net/sourceforge/jnlp/Launcher.java b/netx/net/sourceforge/jnlp/Launcher.java index 988650b..1c99e29 100644 --- a/netx/net/sourceforge/jnlp/Launcher.java +++ b/netx/net/sourceforge/jnlp/Launcher.java @@ -704,10 +704,6 @@ public class Launcher { ThreadGroup group = Thread.currentThread().getThreadGroup(); String appletName = file.getApplet().getMainClass(); - - //Classloader chokes if there's '/' in the path to the main class. - //Must replace with '.' instead. - appletName = appletName.replace('/', '.'); Class appletClass = loader.loadClass(appletName); Applet applet = (Applet) appletClass.newInstance(); @@ -744,10 +740,6 @@ public class Launcher { } String appletName = file.getApplet().getMainClass(); - - //Classloader chokes if there's '/' in the path to the main class. - //Must replace with '.' instead. - appletName = appletName.replace('/', '.'); Class appletClass = loader.loadClass(appletName); Applet applet = (Applet) appletClass.newInstance(); diff --git a/netx/net/sourceforge/jnlp/PluginBridge.java b/netx/net/sourceforge/jnlp/PluginBridge.java index a54858a..ac703b3 100644 --- a/netx/net/sourceforge/jnlp/PluginBridge.java +++ b/netx/net/sourceforge/jnlp/PluginBridge.java @@ -133,7 +133,9 @@ public class PluginBridge extends JNLPFile { if (main.endsWith(".class")) main = main.substring(0, main.length() - 6); - launchType = new AppletDesc(name, main, documentBase, width, + // the class name should be of the form foo.bar.Baz not foo/bar/Baz + String mainClass = main.replace('/', '.'); + launchType = new AppletDesc(name, mainClass, documentBase, width, height, atts); if (main.endsWith(".class")) //single class file only diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java index 03e3763..412fb21 100644 --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java @@ -580,6 +580,7 @@ public class JNLPClassLoader extends URLClassLoader { mainClass = ad.getMainClass(); } else return; + String desiredJarEntryName = mainClass + ".class"; for (int i = 0; i < jars.size(); i++) { @@ -599,9 +600,7 @@ public class JNLPClassLoader extends URLClassLoader { while (entries.hasMoreElements()) { je = entries.nextElement(); String jeName = je.getName().replaceAll("/", "."); - - if (!jeName.startsWith(mainClass + "$Inner") - && (jeName.startsWith(mainClass) && jeName.endsWith(".class"))) { + if (jeName.equals(desiredJarEntryName)) { foundMainJar = true; verifySignedJNLP(jars.get(i), jarFile); break; |