Fixed JDK hack

This commit is contained in:
Pavel Talanov
2011-11-09 16:36:40 +04:00
parent 1bf6efce87
commit 6654405efc
2 changed files with 68 additions and 33 deletions
+25 -30
View File
@@ -6,19 +6,13 @@
</component>
<component name="ChangeListManager">
<list default="true" id="f02ef53d-47a4-4f5e-a1aa-3df68aae9b20" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/libs.xml" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\.idea\libraries\guava_10_0_1.xml" afterPath="" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\.idea\libraries\junit.xml" afterPath="" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\lib\guava-10.0.1.jar" afterPath="" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\lib\js.jar" afterPath="" />
<change type="DELETED" beforePath="C:\Dev\Projects\jet-contrib\k2js\lib\junit-4.10.jar" afterPath="" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/assign.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/classInstantiation.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/comparison.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/localProperty.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/translator/test_files/test_cases/test.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/js.iml" afterPath="$PROJECT_DIR$/js/js.iml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsProgram.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsProgram.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" afterPath="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/translator.iml" afterPath="$PROJECT_DIR$/translator/translator.iml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" afterPath="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
</list>
<ignored path="k2js.iws" />
<ignored path=".idea/workspace.xml" />
@@ -99,10 +93,10 @@
<splitter split-orientation="horizontal" split-proportion="0.5082908">
<split-first>
<leaf>
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="false" current-in-tab="false">
<file leaf-file-name="K2JSTranslator.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="91" column="27" selection-start="3396" selection-end="3396" vertical-scroll-proportion="0.0">
<state line="173" column="63" selection-start="7002" selection-end="7002" vertical-scroll-proportion="1.2596401">
<folding />
</state>
</provider>
@@ -177,10 +171,10 @@
</provider>
</entry>
</file>
<file leaf-file-name="JetStandardLibrary.java" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="JetStandardLibrary.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java">
<provider selected="true" editor-type-id="text-editor">
<state line="43" column="22" selection-start="1729" selection-end="1729" vertical-scroll-proportion="0.50718683">
<state line="48" column="14" selection-start="1890" selection-end="1890" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -253,7 +247,7 @@
<file leaf-file-name="Namer.java" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="28" selection-start="1955" selection-end="1955" vertical-scroll-proportion="1.378">
<state line="62" column="28" selection-start="1955" selection-end="1955" vertical-scroll-proportion="0.8710493">
<folding />
</state>
</provider>
@@ -297,11 +291,11 @@
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ExpressionVisitor.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/TranslationContext.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/GenerationState.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/backend/js/ast/JsProgram.java" />
<option value="$PROJECT_DIR$/js/src/com/google/dart/compiler/util/AstUtil.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/NamespaceTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassTranslator.java" />
<option value="$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java" />
</list>
</option>
</component>
@@ -767,9 +761,9 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3997862" sideWeight="0.6705998" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16149732" sideWeight="0.5258621" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16149732" sideWeight="0.8045977" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.47413793" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1954023" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
@@ -807,7 +801,7 @@
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="split code into modules and lots of other code changes" />
<option name="LAST_COMMIT_MESSAGE" value="Finished reorganising project structure." />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
@@ -822,6 +816,7 @@
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
<MESSAGE value="Added tests and rewrote scoping logic" />
<MESSAGE value="split code into modules and lots of other code changes" />
<MESSAGE value="Finished reorganising project structure." />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -856,7 +851,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/Namer.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="28" selection-start="1955" selection-end="1955" vertical-scroll-proportion="1.378">
<state line="62" column="28" selection-start="1955" selection-end="1955" vertical-scroll-proportion="0.8710493">
<folding />
</state>
</provider>
@@ -868,13 +863,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="91" column="27" selection-start="3396" selection-end="3396" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/translate/ClassBodyVisitor.java">
<provider selected="true" editor-type-id="text-editor">
<state line="70" column="16" selection-start="3002" selection-end="3002" vertical-scroll-proportion="-45.76923">
@@ -948,7 +936,14 @@
</entry>
<entry file="file://$PROJECT_DIR$/../../Kotlin/jet/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java">
<provider selected="true" editor-type-id="text-editor">
<state line="43" column="22" selection-start="1729" selection-end="1729" vertical-scroll-proportion="0.50718683">
<state line="48" column="14" selection-start="1890" selection-end="1890" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/translator/src/org/jetbrains/k2js/K2JSTranslator.java">
<provider selected="true" editor-type-id="text-editor">
<state line="173" column="63" selection-start="7002" selection-end="7002" vertical-scroll-proportion="1.2596401">
<folding />
</state>
</provider>
@@ -28,6 +28,8 @@ import org.jetbrains.jet.lang.resolve.java.JavaDefaultImports;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Collection;
import java.util.List;
@@ -165,11 +167,49 @@ public class K2JSTranslator {
}
private static File initJdk() {
// TODO detect jar
File rtJar = new File("C:\\Program Files\\Java\\jdk1.6.0_29\\jre\\lib\\rt.jar");
assert rtJar != null;
String javaHome = System.getenv("JAVA_HOME");
File rtJar = null;
if (javaHome == null) {
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")) {
rtJar = new File(url.getFile());
break;
}
if(url.getFile().endsWith("/Classes/classes.jar")) {
rtJar = new File(url.getFile()).getAbsoluteFile();
break;
}
}
}
}
if(rtJar == null) {
System.out.println("JAVA_HOME environment variable needs to be defined");
return null;
}
}
else {
rtJar = findRtJar(javaHome);
}
if (rtJar == null || !rtJar.exists()) {
System.out.print("No rt.jar found under JAVA_HOME=" + javaHome);
return null;
}
return rtJar;
}
private static File findRtJar(String javaHome) {
File rtJar = new File(javaHome, "jre/lib/rt.jar");
if (rtJar.exists()) {
return rtJar;
}
return null;
}
}