Bug 548905 - [9] Launch Configuration and Build Path should interpret
.classpath in a similar way
Change-Id: I0d590b16fb74f6e3cffa6f2ef2c10a128505ff52
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 0c7be81..7f1a4d4 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -3492,9 +3492,18 @@
switch (optName) {
case IClasspathAttribute.ADD_EXPORTS:
case IClasspathAttribute.ADD_OPENS:
- case IClasspathAttribute.ADD_READS:
- buf.append(OPTION_START).append(optName).append(BLANK).append(classpathAttribute.getValue()).append(BLANK);
+ case IClasspathAttribute.ADD_READS: {
+ String readModules = classpathAttribute.getValue();
+ int equalsIdx = readModules.indexOf('=');
+ if (equalsIdx != -1) {
+ for (String readModule : readModules.split(":")) { //$NON-NLS-1$
+ buf.append(OPTION_START).append(optName).append(BLANK).append(readModule).append(BLANK);
+ }
+ } else {
+ buf.append(OPTION_START).append(optName).append(BLANK).append(readModules).append(BLANK);
+ }
break;
+ }
case IClasspathAttribute.PATCH_MODULE: {
String patchModules = classpathAttribute.getValue();
for (String patchModule : patchModules.split("::")) { //$NON-NLS-1$