diff --git a/j2k/j2k.iml b/j2k/j2k.iml
index 78bfa94b53a..7af9f0e16a8 100644
--- a/j2k/j2k.iml
+++ b/j2k/j2k.iml
@@ -9,6 +9,7 @@
+
diff --git a/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java b/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java
index 3a52ddfac1a..918548f5237 100644
--- a/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java
+++ b/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java
@@ -20,15 +20,14 @@ import com.intellij.core.JavaCoreProjectEnvironment;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory;
import com.intellij.psi.PsiJavaFile;
-import com.intellij.util.Function;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.j2k.visitors.ClassVisitor;
+import org.jetbrains.jet.utils.PathUtil;
import java.io.File;
import java.io.IOException;
@@ -70,7 +69,7 @@ public class JavaToKotlinTranslator {
JavaCoreApplicationEnvironment applicationEnvironment = new JavaCoreApplicationEnvironment(DISPOSABLE);
JavaCoreProjectEnvironment javaCoreEnvironment = new JavaCoreProjectEnvironment(DISPOSABLE, applicationEnvironment);
- javaCoreEnvironment.addJarToClassPath(findRtJar());
+ javaCoreEnvironment.addJarToClassPath(PathUtil.findRtJar());
File annotations = findAnnotations();
if (annotations != null && annotations.exists()) {
javaCoreEnvironment.addJarToClassPath(annotations);
@@ -94,45 +93,6 @@ public class JavaToKotlinTranslator {
;
}
- @Nullable
- public static File findRtJar() {
- String javaHome = System.getenv("JAVA_HOME");
- File rtJar;
- if (javaHome == null) {
- rtJar = findActiveRtJar(true);
-
- if (rtJar == null) {
- throw new SetupJavaCoreEnvironmentException("JAVA_HOME environment variable needs to be defined");
- }
- }
- else {
- rtJar = findRtJar(javaHome);
- }
-
- if (rtJar == null || !rtJar.exists()) {
- rtJar = findActiveRtJar(true);
-
- if ((rtJar == null || !rtJar.exists())) {
- throw new SetupJavaCoreEnvironmentException("No rt.jar found under JAVA_HOME=" + javaHome);
- }
- }
- return rtJar;
- }
-
- @Nullable
- private static File findRtJar(String javaHome) {
- File rtJar = new File(javaHome, "jre/lib/rt.jar");
- if (rtJar.exists()) {
- return rtJar;
- }
-
- File classesJar = new File(new File(javaHome).getParentFile().getAbsolutePath(), "Classes/classes.jar");
- if (classesJar.exists()) {
- return classesJar;
- }
- return null;
- }
-
@Nullable
public static File findAnnotations() {
ClassLoader classLoader = JavaToKotlinTranslator.class.getClassLoader();
@@ -149,37 +109,6 @@ public class JavaToKotlinTranslator {
return null;
}
- @Nullable
- private static File findActiveRtJar(boolean failOnError) {
- ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
- if (systemClassLoader instanceof URLClassLoader) {
- URLClassLoader loader = (URLClassLoader) systemClassLoader;
- for (URL url : loader.getURLs()) {
- if ("file".equals(url.getProtocol())) {
- if (url.getFile().endsWith("/lib/rt.jar")) {
- return new File(url.getFile());
- }
- if (url.getFile().endsWith("/Classes/classes.jar")) {
- return new File(url.getFile()).getAbsoluteFile();
- }
- }
- }
- if (failOnError) {
- throw new SetupJavaCoreEnvironmentException("Could not find rt.jar in system class loader: " + StringUtil.join(loader.getURLs(), new Function() {
- @NotNull
- @Override
- public String fun(@NotNull URL url) {
- return url.toString() + "\n";
- }
- }, ", "));
- }
- }
- else if (failOnError) {
- throw new SetupJavaCoreEnvironmentException("System class loader is not an URLClassLoader: " + systemClassLoader);
- }
- return null;
- }
-
static void setClassIdentifiers(@NotNull Converter converter, @NotNull PsiElement psiFile) {
ClassVisitor c = new ClassVisitor();
psiFile.accept(c);
diff --git a/j2k/tests/j2k-tests.iml b/j2k/tests/j2k-tests.iml
index 70012990951..0d3d4fd6bce 100644
--- a/j2k/tests/j2k-tests.iml
+++ b/j2k/tests/j2k-tests.iml
@@ -12,6 +12,7 @@
+
diff --git a/j2k/tests/test/org/jetbrains/jet/j2k/StandaloneJavaToKotlinConverterTest.java b/j2k/tests/test/org/jetbrains/jet/j2k/StandaloneJavaToKotlinConverterTest.java
index 458ae5e9a2b..a45e98beabd 100644
--- a/j2k/tests/test/org/jetbrains/jet/j2k/StandaloneJavaToKotlinConverterTest.java
+++ b/j2k/tests/test/org/jetbrains/jet/j2k/StandaloneJavaToKotlinConverterTest.java
@@ -29,6 +29,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.config.CompilerConfiguration;
+import org.jetbrains.jet.utils.PathUtil;
import java.io.File;
import java.io.IOException;
@@ -42,7 +43,7 @@ public class StandaloneJavaToKotlinConverterTest extends TestCase {
static {
CompilerConfiguration config = new CompilerConfiguration();
- config.add(JVMConfigurationKeys.CLASSPATH_KEY, JavaToKotlinTranslator.findRtJar());
+ config.add(JVMConfigurationKeys.CLASSPATH_KEY, PathUtil.findRtJar());
File annotations = JavaToKotlinTranslator.findAnnotations();
if (annotations != null && annotations.exists()) {
config.add(JVMConfigurationKeys.CLASSPATH_KEY, annotations);
@@ -74,9 +75,9 @@ public class StandaloneJavaToKotlinConverterTest extends TestCase {
if (!kotlinFile.exists()) {
FileUtil.writeToFile(kotlinFile, "");
}
- final String expected = FileUtil.loadFile(kotlinFile);
+ final String expected = FileUtil.loadFile(kotlinFile, true);
final File javaFile = new File(javaPath);
- final String javaCode = FileUtil.loadFile(javaFile);
+ final String javaCode = FileUtil.loadFile(javaFile, true);
String actual = "";
String parentFileName = javaFile.getParentFile().getName();