git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272064 13f79535-47bb-0310-9956-ffa450edef68master
@@ -10,6 +10,7 @@ package org.apache.antlib.java; | |||
import java.io.File; | |||
import org.apache.myrmidon.api.TaskException; | |||
import org.apache.myrmidon.framework.Execute; | |||
import org.apache.myrmidon.framework.java.JavaRuntimeClassPath; | |||
import org.apache.myrmidon.framework.file.Path; | |||
import org.apache.tools.todo.types.Commandline; | |||
import org.apache.tools.todo.types.PathUtil; | |||
@@ -53,7 +54,7 @@ public class JikesAdaptor | |||
} | |||
// Add the runtime | |||
PathUtil.addJavaRuntime( classpath ); | |||
classpath.add( new JavaRuntimeClassPath() ); | |||
// Build the command line | |||
final Commandline cmd = exe.getCommandline(); | |||
@@ -0,0 +1,80 @@ | |||
/* | |||
* Copyright (C) The Apache Software Foundation. All rights reserved. | |||
* | |||
* This software is published under the terms of the Apache Software License | |||
* version 1.1, a copy of which has been included with this distribution in | |||
* the LICENSE.txt file. | |||
*/ | |||
package org.apache.myrmidon.framework.java; | |||
import org.apache.myrmidon.framework.file.FileList; | |||
import org.apache.myrmidon.framework.file.Path; | |||
import org.apache.myrmidon.api.TaskException; | |||
import org.apache.myrmidon.api.TaskContext; | |||
import org.apache.tools.todo.types.FileSet; | |||
import org.apache.aut.nativelib.Os; | |||
import java.util.Locale; | |||
import java.io.File; | |||
/** | |||
* A FileList that evaluates to the runtime class-path for this JVM. | |||
* | |||
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||
* @version $Revision$ $Date$ | |||
* | |||
* @ant.type type="path" name="java-runtime" | |||
*/ | |||
public class JavaRuntimeClassPath | |||
implements FileList | |||
{ | |||
/** | |||
* Returns the files in this list. | |||
* | |||
* @param context the context to use to evaluate the list. | |||
* @return The names of the files in this list. All names are absolute paths. | |||
*/ | |||
public String[] listFiles( final TaskContext context ) | |||
throws TaskException | |||
{ | |||
final Path path = new Path(); | |||
if( System.getProperty( "java.vendor" ).toLowerCase( Locale.US ).indexOf( "microsoft" ) >= 0 ) | |||
{ | |||
// Pull in *.zip from packages directory | |||
FileSet msZipFiles = new FileSet(); | |||
msZipFiles.setDir( new File( System.getProperty( "java.home" ) + File.separator + "Packages" ) ); | |||
msZipFiles.setIncludes( "*.ZIP" ); | |||
path.addFileset( msZipFiles ); | |||
} | |||
else if( "Kaffe".equals( System.getProperty( "java.vm.name" ) ) ) | |||
{ | |||
FileSet kaffeJarFiles = new FileSet(); | |||
kaffeJarFiles.setDir( new File( System.getProperty( "java.home" ) | |||
+ File.separator + "share" | |||
+ File.separator + "kaffe" ) ); | |||
kaffeJarFiles.setIncludes( "*.jar" ); | |||
path.addFileset( kaffeJarFiles ); | |||
} | |||
else if( Os.isFamily( Os.OS_FAMILY_OSX ) ) | |||
{ | |||
// MacOS X | |||
final String classDir = System.getProperty( "java.home" ) + | |||
File.separator + ".." + File.separator + "Classes"; | |||
final File classes = new File( classDir, "classes.jar" ); | |||
path.addLocation( classes ); | |||
final File ui = new File( classDir, "ui.jar" ); | |||
path.addLocation( ui ); | |||
} | |||
else | |||
{ | |||
// JDK > 1.1 sets java.home to the JRE directory. | |||
final String rt = System.getProperty( "java.home" ) + | |||
File.separator + "lib" + File.separator + "rt.jar"; | |||
final File rtJar = new File( rt ); | |||
path.addLocation( rtJar ); | |||
} | |||
return path.listFiles( context ); | |||
} | |||
} |
@@ -167,7 +167,6 @@ public class JJTree | |||
} | |||
final Path classpath = exe.getClassPath(); | |||
classpath.addLocation( new File( javaccHome, "JavaCC.zip" ) ); | |||
PathUtil.addJavaRuntime( classpath ); | |||
exe.setMaxMemory( "140M" ); | |||
exe.getSysProperties().addVariable( "install.root", javaccHome.getAbsolutePath() ); | |||
@@ -222,7 +222,6 @@ public class JavaCC | |||
final Path classpath = exe.getClassPath(); | |||
classpath.addLocation( new File( javaccHome, "JavaCC.zip" ) ); | |||
PathUtil.addJavaRuntime( classpath ); | |||
exe.setMaxMemory( "140M" ); | |||
exe.getSysProperties().addVariable( "install.root", javaccHome.getAbsolutePath() ); | |||
@@ -141,50 +141,6 @@ public class PathUtil | |||
} | |||
} | |||
/** | |||
* Adds this JVM's runtime to a path. | |||
*/ | |||
public static void addJavaRuntime( final Path path ) | |||
throws TaskException | |||
{ | |||
if( System.getProperty( "java.vendor" ).toLowerCase( Locale.US ).indexOf( "microsoft" ) >= 0 ) | |||
{ | |||
// Pull in *.zip from packages directory | |||
FileSet msZipFiles = new FileSet(); | |||
msZipFiles.setDir( new File( System.getProperty( "java.home" ) + File.separator + "Packages" ) ); | |||
msZipFiles.setIncludes( "*.ZIP" ); | |||
path.addFileset( msZipFiles ); | |||
} | |||
else if( "Kaffe".equals( System.getProperty( "java.vm.name" ) ) ) | |||
{ | |||
FileSet kaffeJarFiles = new FileSet(); | |||
kaffeJarFiles.setDir( new File( System.getProperty( "java.home" ) | |||
+ File.separator + "share" | |||
+ File.separator + "kaffe" ) ); | |||
kaffeJarFiles.setIncludes( "*.jar" ); | |||
path.addFileset( kaffeJarFiles ); | |||
} | |||
else if( Os.isFamily( Os.OS_FAMILY_OSX ) ) | |||
{ | |||
// MacOS X | |||
final String classDir = System.getProperty( "java.home" ) + | |||
File.separator + ".." + File.separator + "Classes"; | |||
final File classes = new File( classDir, "classes.jar" ); | |||
path.addLocation( classes ); | |||
final File ui = new File( classDir, "ui.jar" ); | |||
path.addLocation( ui ); | |||
} | |||
else | |||
{ | |||
// JDK > 1.1 sets java.home to the JRE directory. | |||
final String rt = System.getProperty( "java.home" ) + | |||
File.separator + "lib" + File.separator + "rt.jar"; | |||
final File rtJar = new File( rt ); | |||
path.addLocation( rtJar ); | |||
} | |||
} | |||
/** | |||
* Adds the contents of a set of directories to a path. | |||
*/ | |||