From 8d39594b91a564ce6bf6f36c911f4daa8dc13a39 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 27 Jan 2012 22:13:09 +0400 Subject: [PATCH] More general way of finding annotations.jar --- .../jet/j2k/JavaToKotlinTranslator.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java b/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java index 3256b711c4c..5bb96ff6ca1 100644 --- a/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java +++ b/j2k/src/org/jetbrains/jet/j2k/JavaToKotlinTranslator.java @@ -129,13 +129,16 @@ public class JavaToKotlinTranslator { @Nullable private static File findAnnotations() { - ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); - if (systemClassLoader instanceof URLClassLoader) { - URLClassLoader loader = (URLClassLoader) systemClassLoader; - for (URL url : loader.getURLs()) - if ("file".equals(url.getProtocol()) && url.getFile().endsWith("/annotations.jar")) { - return new File(url.getFile()); - } + ClassLoader classLoader = JavaToKotlinTranslator.class.getClassLoader(); + while (classLoader != null) { + if (classLoader instanceof URLClassLoader) { + URLClassLoader loader = (URLClassLoader) classLoader; + for (URL url : loader.getURLs()) + if ("file".equals(url.getProtocol()) && url.getFile().endsWith("/annotations.jar")) { + return new File(url.getFile()); + } + } + classLoader = classLoader.getParent(); } return null; }