You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2001/07/18 12:07:03 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant/types CommandlineJava.java
bodewig 01/07/18 03:07:03
Modified: src/main/org/apache/tools/ant/taskdefs Javadoc.java
src/main/org/apache/tools/ant/types CommandlineJava.java
Log:
Apply the same magic <javadoc> uses to locate the javadoc command to
CommandlineJava (and with thus to <java fork="true">).
Suggested by: Jesse Glick <Je...@netbeans.com>
Also, add .exe on OS/2 as well.
This still doesn't work for IBM's JDK 1.3 on AIX (java is in
JAVA_HOME/jre/sh and javac in JAVA_HOME/sh) - need to find out what
java.home points to and where javadoc is, before we can fix that.
Revision Changes Path
1.57 +6 -4 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
Index: Javadoc.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- Javadoc.java 2001/07/17 14:54:13 1.56
+++ Javadoc.java 2001/07/18 10:07:02 1.57
@@ -1145,10 +1145,12 @@
private String getJavadocExecutableName()
{
- // This is the most common extension case - exe for windows, nothing
- // for *nix.
- String extension = (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) ?
- ".exe" : "";
+ // This is the most common extension case - exe for windows and OS/2,
+ // nothing for *nix.
+ String os = System.getProperty("os.name").toLowerCase();
+ boolean dosBased =
+ os.indexOf("windows") >= 0 || os.indexOf("os/2") >= 0;
+ String extension = dosBased? ".exe" : "";
// Look for javadoc in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
1.13 +24 -1 jakarta-ant/src/main/org/apache/tools/ant/types/CommandlineJava.java
Index: CommandlineJava.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/types/CommandlineJava.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- CommandlineJava.java 2001/03/02 16:00:38 1.12
+++ CommandlineJava.java 2001/07/18 10:07:02 1.13
@@ -128,7 +128,7 @@
}
public CommandlineJava() {
- setVm("java");
+ setVm(getJavaExecutableName());
setVmversion(org.apache.tools.ant.Project.getJavaVersion());
}
@@ -254,4 +254,27 @@
javaCommand.clearArgs();
}
+ private String getJavaExecutableName() {
+ // This is the most common extension case - exe for windows and OS/2,
+ // nothing for *nix.
+ String os = System.getProperty("os.name").toLowerCase();
+ boolean dosBased =
+ os.indexOf("windows") >= 0 || os.indexOf("os/2") >= 0;
+ String extension = dosBased? ".exe" : "";
+
+ // Look for java in the java.home/../bin directory. Unfortunately
+ // on Windows java.home doesn't always refer to the correct location,
+ // so we need to fall back to assuming java is somewhere on the
+ // PATH.
+ java.io.File jExecutable =
+ new java.io.File(System.getProperty("java.home") +
+ "/../bin/java" + extension );
+
+ if (jExecutable.exists()) {
+ return jExecutable.getAbsolutePath();
+ } else {
+ return "java";
+ }
+ }
+
}