Bug 522333 - [9] "Error: Could not find or load main class
o.c.p.c.l.Launcher" when running Eclipse Java 9 Beta
Change-Id: Ifcc2adf04b9a15883eec5b929b4e189ef22f7d78
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
index 1430738..ae0c1e6 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
@@ -416,14 +416,16 @@
List<String> userEntries = new ArrayList<>(entries.length);
Set<String> set = new HashSet<>(entries.length);
- for (int i = 0; i < entries.length; i++) {
- String location = entries[i].getLocation();
- if (location != null) {
+ for (IRuntimeClasspathEntry entry : entries) {
+ String location = entry.getLocation();
+ if (location != null) {
+ if (entry.getClasspathProperty() != IRuntimeClasspathEntry.MODULE_PATH) {
if (!set.contains(location)) {
userEntries.add(location);
set.add(location);
}
}
+ }
}
return userEntries.toArray(new String[userEntries.size()]);
}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
index 1d20f4e..87c363c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
@@ -70,13 +70,10 @@
// VM-specific attributes
Map<String, Object> vmAttributesMap = getVMSpecificAttributesMap(configuration);
- // Classpath
+ // Bug 522333 :to be used for modulepath only for 4.7.*
String[][] paths = getClasspathAndModulepath(configuration);
-
-
-
// Create VM config
- VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, paths[0]);
+ VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, getClasspath(configuration));
runConfig.setProgramArguments(execArgs.getProgramArgumentsArray());
runConfig.setEnvironment(envp);
runConfig.setVMArguments(execArgs.getVMArgumentsArray());
@@ -92,11 +89,13 @@
}
}
- // Bootpath
- runConfig.setBootClassPath(getBootpath(configuration));
-
- // module path
- runConfig.setModulepath(paths[1]);
+ if (!JavaRuntime.isModularConfiguration(configuration)) {
+ // Bootpath
+ runConfig.setBootClassPath(getBootpath(configuration));
+ } else {
+ // module path
+ runConfig.setModulepath(paths[1]);
+ }
// check for cancellation
if (monitor.isCanceled()) {