###############################################################################
# Copyright (c) 2000, 2017 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     dakshinamurthy.karra@gmail.com - bug 165371
###############################################################################

AntLaunchDelegate_Launching__0__1=Launching {0}
AntLaunchDelegate_Launching__0__2=JRE version less than 1.8 is not supported. 
AntLaunchDelegate_Running__0__2=Running {0}
AntLaunchDelegate_Build_In_Progress=Ant build {0} already in progress. Concurrent Ant builds are possible if you specify to build in a separate JRE.
AntLaunchDelegate_Failure=Failure of Background Ant Build
AntLaunchDelegate_23=Ant Build Failed
AntLaunchDelegate_28=Waiting for virtual machine to exit...

AntHomeClasspathEntry_8=Ant Home (Default)
AntHomeClasspathEntry_9=Ant Home ({0})
AntHomeClasspathEntry_10=Ant Home {0} does not exist
AntHomeClasspathEntry_11=Ant Home {0} does not contain a "lib" directory

ContributedClasspathEntriesEntry_1=Additional Tasks & Support