diff --git a/docs/index.html b/docs/index.html
index 0e7de4a2e..fbe8c9b8e 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2555,7 +2555,7 @@ inclusion/exclusion of files works, and how to write patterns.
destdir |
location where to store the class files. |
- No (defaults to - the first - srcdir) |
+ No |
includes |
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javac.java b/src/main/org/apache/tools/ant/taskdefs/Javac.java
index 55e4ff1da..e17f563c5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javac.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javac.java
@@ -291,14 +291,7 @@ public class Javac extends MatchingTask {
throw new BuildException("srcdir attribute must be set!", location);
}
-
- if (destDir == null) {
- destDir = project.resolveFile(list[0]);
- log("destdir set to "+destDir.getPath()+" from srcdir attribute",
- Project.MSG_INFO);
- }
-
- if (!destDir.isDirectory()) {
+ if (destDir != null && !destDir.isDirectory()) {
throw new BuildException("destination directory \"" + destDir + "\" does not exist or is not a directory", location);
}
@@ -315,7 +308,7 @@ public class Javac extends MatchingTask {
String[] files = ds.getIncludedFiles();
- scanDir(srcDir, destDir, files);
+ scanDir(srcDir, destDir != null ? destDir : srcDir, files);
}
// compile the source files
@@ -333,7 +326,7 @@ public class Javac extends MatchingTask {
log("Compiling " + compileList.size() +
" source file"
+ (compileList.size() == 1 ? "" : "s")
- + " to " + destDir);
+ + (destDir != null ? " to " + destDir : ""));
if (compiler.equalsIgnoreCase("classic")) {
doClassicCompile();
@@ -407,7 +400,9 @@ public class Javac extends MatchingTask {
// add dest dir to classpath so that previously compiled and
// untouched classes are on classpath
- classpath.setLocation(destDir);
+ if (destDir != null) {
+ classpath.setLocation(destDir);
+ }
// add our classpath to the mix
@@ -542,8 +537,11 @@ public class Javac extends MatchingTask {
cmd.createArgument().setValue("-deprecation");
}
- cmd.createArgument().setValue("-d");
- cmd.createArgument().setFile(destDir);
+ if (destDir != null) {
+ cmd.createArgument().setValue("-d");
+ cmd.createArgument().setFile(destDir);
+ }
+
cmd.createArgument().setValue("-classpath");
// Just add "sourcepath" to classpath ( for JDK1.1 )
if (Project.getJavaVersion().startsWith("1.1")) {
@@ -669,8 +667,11 @@ public class Javac extends MatchingTask {
if (deprecation == true)
cmd.createArgument().setValue("-deprecation");
- cmd.createArgument().setValue("-d");
- cmd.createArgument().setFile(destDir);
+ if (destDir != null) {
+ cmd.createArgument().setValue("-d");
+ cmd.createArgument().setFile(destDir);
+ }
+
cmd.createArgument().setValue("-classpath");
cmd.createArgument().setPath(classpath);
@@ -853,8 +854,11 @@ public class Javac extends MatchingTask {
Commandline cmd = new Commandline();
cmd.setExecutable("jvc");
- cmd.createArgument().setValue("/d");
- cmd.createArgument().setFile(destDir);
+ if (destDir != null) {
+ cmd.createArgument().setValue("/d");
+ cmd.createArgument().setFile(destDir);
+ }
+
// Add the Classpath before the "internal" one.
cmd.createArgument().setValue("/cp:p");
cmd.createArgument().setPath(classpath);