###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
### ant tasks messages.
ant.jdtadapter.info.usingJDTCompiler=Using JDT compiler
ant.jdtadapter.error.compilationFailed=Compilation failed. Compiler errors are available in {0}
ant.jdtadapter.error.cannotFindJDTCompiler=Cannot find the JDT compiler
ant.jdtadapter.info.ignoringMemoryInitialSize=Since fork is false, ignoring memoryInitialSize setting
ant.jdtadapter.info.ignoringMemoryMaximumSize=Since fork is false, ignoring memoryMaximumSize setting
ant.jdtadapter.info.unknownVmVersion={0} : Unknown VM version, default compliance used
ant.jdtadapter.info.unknownTarget={0} : Unknown target, default used
ant.jdtadapter.info.unknownSource={0} : Unknown source, default used

checkDebugAttributes.file.argument.cannot.be.null=The file argument cannot be null
checkDebugAttributes.property.argument.cannot.be.null=The property argument cannot be null
checkDebugAttributes.ioexception.occured=IOException occured while reading 
checkDebugAttributes.file.argument.must.be.a.classfile.or.a.jarfile=The file argument must be a .class or a .jar file