⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jikes.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.taskdefs;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.util.FileUtils;/** * Encapsulates a Jikes compiler, by directly executing an external * process. * * <p><strong>As of Ant 1.2, this class is considered to be dead code * by the Ant developers and is unmaintained.  Don't use * it.</strong></p> * * @deprecated since 1.2. *             Merged into the class Javac. */public class Jikes {    // There have been reports that 300 files could be compiled    // on a command line so 250 is a conservative approach    private static final int MAX_FILES_ON_COMMAND_LINE = 250;    // CheckStyle:VisibilityModifier OFF - bc    protected JikesOutputParser jop;    protected String command;    protected Project project;    // CheckStyle:VisibilityModifier ON    /**     * Constructs a new Jikes object.     * @param jop      Parser to send jike's output to     * @param command  name of jikes executable     * @param project  the current project     */    protected Jikes(JikesOutputParser jop, String command, Project project) {        super();        System.err.println("As of Ant 1.2 released in October 2000, "            + "the Jikes class");        System.err.println("is considered to be dead code by the Ant "            + "developers and is unmaintained.");        System.err.println("Don\'t use it!");        this.jop = jop;        this.command = command;        this.project = project;    }    /**     * Do the compile with the specified arguments.     * @param args - arguments to pass to process on command line     */    protected void compile(String[] args) {        String[] commandArray = null;        File tmpFile = null;        try {            String myos = System.getProperty("os.name");            // Windows has a 32k limit on total arg size, so            // create a temporary file to store all the arguments            if (myos.toLowerCase().indexOf("windows") >= 0                && args.length > MAX_FILES_ON_COMMAND_LINE) {                PrintWriter out = null;                try {                    String tempFileName = "jikes"                        + (new Random(System.currentTimeMillis())).nextLong();                    tmpFile = new File(tempFileName);                    out = new PrintWriter(new FileWriter(tmpFile));                    for (int i = 0; i < args.length; i++) {                        out.println(args[i]);                    }                    out.flush();                    commandArray = new String[] {command,                                               "@" + tmpFile.getAbsolutePath()};                } catch (IOException e) {                    throw new BuildException("Error creating temporary file",                                             e);                } finally {                    FileUtils.close(out);                }            } else {                commandArray = new String[args.length + 1];                commandArray[0] = command;                System.arraycopy(args, 0, commandArray, 1, args.length);            }            // We assume, that everything jikes writes goes to            // standard output, not to standard error. The option            // -Xstdout that is given to Jikes in Javac.doJikesCompile()            // should guarantee this. At least I hope so. :)            try {                Execute exe = new Execute(jop);                exe.setAntRun(project);                exe.setWorkingDirectory(project.getBaseDir());                exe.setCommandline(commandArray);                exe.execute();            } catch (IOException e) {                throw new BuildException("Error running Jikes compiler", e);            }        } finally {            if (tmpFile != null) {                tmpFile.delete();            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -