diff -ruN util_orig/org/eclipse/jdt/core/tests/util/Util.java util_new/org/eclipse/jdt/core/tests/util/Util.java --- util_orig/org/eclipse/jdt/core/tests/util/Util.java 2007-05-24 10:31:00.000000000 +0700 +++ util_new/org/eclipse/jdt/core/tests/util/Util.java 2007-07-05 11:39:35.609985000 +0700 @@ -656,16 +656,28 @@ }; } if ("DRLVM".equals(vmName)) { - FilenameFilter jarFilter = new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.endsWith(".jar") & !name.endsWith("-src.jar"); + String bootclasspathProperty = System.getProperty("sun.boot.class.path"); + if ((bootclasspathProperty != null) && (bootclasspathProperty.length() != 0)) { + StringTokenizer tokenizer = new StringTokenizer(bootclasspathProperty, File.pathSeparator); + String[] jars = new String[tokenizer.countTokens()]; + int i = 0; + while (tokenizer.hasMoreTokens()) { + jars[i] = toNativePath(tokenizer.nextToken()); + i++; } - }; - String[] jars = new File(jreDir + "/lib/boot/").list(jarFilter); - for (int i = 0; i < jars.length; i++) { - jars[i] = toNativePath(jreDir + "/lib/boot/" + jars[i]); + return jars; + } else { + FilenameFilter jarFilter = new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.endsWith(".jar") & !name.endsWith("-src.jar"); + } + }; + String[] jars = new File(jreDir + "/lib/boot/").list(jarFilter); + for (int i = 0; i < jars.length; i++) { + jars[i] = toNativePath(jreDir + "/lib/boot/" + jars[i]); + } + return jars; } - return jars; } ArrayList paths = new ArrayList(); String[] jarsNames = new String[] {