[GRADLE-2751] Error in gradle/gradlew scripts with IBM JDK on AIX Created: 15/Apr/13  Updated: 10/Feb/17  Resolved: 10/Feb/17

Status: Resolved
Project: Gradle
Affects Version/s: 1.5
Fix Version/s: None

Type: Bug
Reporter: Gradle Forums Assignee: Unassigned
Resolution: Won't Fix Votes: 0


 Description   

I'm evaluating Gradle 1.5 and I've tried to set up a build for some java projects using the Gradle wrapper.

I found that I have to immediately fix the wrapper script gradlew b/c it can't find java. The issue is in the following lines (lines 72 - 74):

...
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then

  1. IBM's JDK on AIX uses strange locations for the executables
    JAVACMD="$JAVA_HOME/jre/sh/java"
    ...

This is actually ironic, since I am using an IBM JDK on AIX, and there is no "jre/sh" directory. The correct path would be "$JAVA_HOME/jre/bin/java".

After that I'm still getting the error

"Unable to find the 'java' executable. Tried the java home: and the PATH. We will assume the executable can be ran in the current working folder."

I haven't been able to chase down where this is coming from, but it has the correct path to JAVA_HOME; it just can't make the leap to JAVA_HOME/jre/bin/java. However, it does run the build correctly in spite of that error.

If I set JAVA_HOME and PATH in my environment, all this goes away. In that case, the relevant lines in gradlew are (around line 85)

if
... (see above) ...
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

I wonder if, instead of setting JAVACMD in the initial code snippet, it would make sense to check for JAVA_HOME and if found, modify the PATH to "$PATH:$JAVA_HOME/jre/bin".

Or force the issue on the environment variables being set? I.e. don't even bother setting JAVACMD or anything else. Just do a check for JAVA_HOME and "java" being found on the path, and if not then fail gracefully as in the latter code snippet.



 Comments   
Comment by Benjamin Muschko [ 15/Nov/16 ]

As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub.

We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to.

Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:

  • Checking that your issues contain requisite context, impact, behaviors, and examples as described in our published guidelines.
  • Leave a comment on the JIRA issue or open a new GitHub issue confirming that the above is complete.

We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle!

Comment by Benjamin Muschko [ 10/Feb/17 ]

Thanks again for reporting this issue. We haven't heard back from you after our inquiry from November 15th. We are closing this issue now. Please create an issue on GitHub if you still feel passionate about getting it resolved.

Generated at Wed Jun 30 12:30:30 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.