Grokbase Groups Ant user April 2015
Hi Jan,

The DITA Open Toolkit uses ANT to build docs. This is a question that comes up occasionally on the DITA Users forum.

A number of document CMS products use the DITA Open Toolkit, so a large number of Technical Authors can potentially see this message.

If it could be suppressed, I'm sure a lot of folks would be highly delighted.

Many thanks,

I thought using a custom Logger could solve your problem.
That logger would simply supress special messages.

But after failing tests I searched for that message:
Locator.getToolsJar() prints directly to SYSO:

public static File getToolsJar() {
... try to find tools.jar
if (!toolsJar.exists()) {
System.out.println("Unable to locate tools.jar. "
+ "Expected to find it in " + toolsJar.getPath());
return null;

This method is called by the Launcher very early in the startup process, where all logging goes directly to STDOUT because the logging framework is not initialized yet.

With that finding these possibilities come to my mind:
- pimp your Ant: overwrite the Locator class (copy and delete all syso-logs) and place that before the Ant jars.
- filter STDOUT: instead using an AntLogger doing the filtering, you have to do it somewhere else between Ant and your tool.
- enhance Ant: we introduce an additional if statement which evaluates System properties (e.g. "ant -Dsuppress-tools-warning=true")
if (!toolsJar.exists()) {
if (!aVerySpecialSystemPropertyIsSet()) {
System.out.println("Unable to locate tools.jar. "
+ "Expected to find it in " + toolsJar.getPath());
return null;



public class NoToolsWarningLogger extends DefaultLogger {

public static final String IGNORE_MSG_PATTERN = "Unable to locate tools.jar.";

public void messageLogged(BuildEvent event) {
String msg = event.getMessage();
if (!msg.contains(IGNORE_MSG_PATTERN)) {
} else {
System.out.println("tools-message suppressed");

-----Ursprüngliche Nachricht-----
Von: Earl Hood
Gesendet: Dienstag, 28. April 2015 07:38
An: Ant Users List
Betreff: Re: tools.jar not found
On Tue, Apr 28, 2015 at 12:12 AM, Jan Matèrne (jhm) wrote:

Ant is a build tool. For some tasks (for example javac, javadoc) the
tools from the Java _Development_ Kit are required.
If you run with just a Java _Runtime_ Environment most of its tasks
could be used, but not all - hence the warning.
It would be really nice if that warning can be suppressed.

I work on a project where Ant is used (under-the-hood), but only the
JRE is required. Ant tasks used do not require the JDK. We have to
include in the user documentation that the "tools.jar" message can be
ignored, but we still on occassion get a user asking about it.

To unsubscribe, e-mail:
For additional commands, e-mail:

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 8 of 12 | next ›
Discussion Overview
groupuser @
postedApr 27, '15 at 4:26p
activeApr 28, '15 at 7:02p



site design / logo © 2019 Grokbase