#19633
diff --git a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchConfiguration.java b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchConfiguration.java
index 08d24cc..b49637a 100644
--- a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchConfiguration.java
+++ b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchConfiguration.java
@@ -10,6 +10,7 @@
import java.net.URL;
import java.util.Vector;
+import org.eclipse.core.boot.BootLoader;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
@@ -18,6 +19,7 @@
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.launching.ExecutionArguments;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jdt.launching.VMRunnerConfiguration;
@@ -34,7 +36,7 @@
* In addition it adds the port for the RemoteTestRunner as an argument
*/
protected VMRunnerConfiguration createVMRunner(ILaunchConfiguration configuration, IType[] testTypes, int port, String runMode) throws CoreException {
- String[] classPath= createClassPath(testTypes[0]);
+ String[] classPath= createClassPath(configuration, testTypes[0]);
VMRunnerConfiguration vmConfig= new VMRunnerConfiguration("org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", classPath); //$NON-NLS-1$
Vector argv= new Vector(10);
@@ -55,15 +57,21 @@
return vmConfig;
}
- private String[] createClassPath(IType type) throws CoreException {
+ private String[] createClassPath(ILaunchConfiguration configuration, IType type) throws CoreException {
URL url= JUnitPlugin.getDefault().getDescriptor().getInstallURL();
- String[] cp= JavaRuntime.computeDefaultRuntimeClassPath(type.getJavaProject());
- String[] classPath= new String[cp.length + 2];
- System.arraycopy(cp, 0, classPath, 2, cp.length);
+ String[] cp= getClasspath(configuration);
+ boolean inDevelopmentMode= BootLoader.inDevelopmentMode();
+
+ String[] classPath= new String[cp.length + 1];
+ System.arraycopy(cp, 0, classPath, 1, cp.length);
try {
- // assumption is that the output folder is called bin!
- classPath[0]= Platform.asLocalURL(new URL(url, "bin")).getFile(); //$NON-NLS-1$
- classPath[1]= Platform.asLocalURL(new URL(url, "junitsupport.jar")).getFile(); //$NON-NLS-1$
+ if (inDevelopmentMode) {
+ // assumption is that the output folder is called bin!
+ classPath[0]= Platform.asLocalURL(new URL(url, "bin")).getFile(); //$NON-NLS-1$
+ }
+ else {
+ classPath[0]= Platform.asLocalURL(new URL(url, "junitsupport.jar")).getFile(); //$NON-NLS-1$
+ }
} catch (MalformedURLException e) {
JUnitPlugin.log(e); // TO DO abort run and inform user
} catch (IOException e) {