[GRADLE-2460] Scala compiler is unable to find a javac compiler under Mac OS with Java 1.7, gradle 1.1 Created: 02/Sep/12 Updated: 04/Jan/13 Resolved: 17/Oct/12 |
|
Status: | Resolved |
Project: | Gradle |
Affects Version/s: | None |
Fix Version/s: | 1.3-rc-1 |
Type: | Bug | ||
Reporter: | Gradle Forums | Assignee: | Peter Niederwieser |
Resolution: | Fixed | Votes: | 0 |
Description |
Hello, I have set the JDK 1.7 path in my gradle.properties file like this: org.gradle.daemon=true When I run a full build for my scala project, I get FAILURE: Build failed with an exception.
BUILD FAILED (Note aside: this happens because there are also java sources in the scala source path. If there are only scala source files, everything is fine) So the question is: why is gradle using the JRE and not the JDK path (since gradle.properties points to the JDK) I have no JAVA_HOME set. The java command on the path, is a java 1.6. However, after setting export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home the problem is gone. Nevertheless I would expect that providing org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home should be enough. Cheers, |
Comments |
Comment by Gradle Forums [ 02/Sep/12 ] |
What does this print? task debug << { |
Comment by Gradle Forums [ 02/Sep/12 ] |
Without JAVA_HOME and org.gradle.java.home set it prints /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home which is ok and everything works fine. Having org.gradle.java.home set to /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home and still no JAVA_HOME the output is /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre which does not work (because of the jre). Setting JAVA_HOME to the same path as org.gradle.java.home doesn't change the output (still ..../Home/jre), however, now the scala compiler is able to find javac. |
Comment by Peter Niederwieser [ 07/Sep/12 ] |
This turned out to be a much more generic issue where system properties like os.name and os.version were carried over from the client JVM to the daemon JVM. If the daemon JVM was running with a different JDK due to org.gradle.java.home being set, this could lead do wrong decision being made on the daemon/build side. In the concrete case, tools.jar wasn't added to the daemon Oracle JVM because the client JVM was Apple (which was carried over). Hence com.sun.tools.javac.Main wasn't available in the daemon JVM. |
Comment by Mauro Molinari [ 17/Oct/12 ] |
The root cause seemed to also have the consequence outlined here: http://forums.gradle.org/gradle/topics/relationship_between_the_java_runtime_used_to_run_the_tooling_api_and_the_java_home The fix version is 1.3, isn't it? |