bootjarbuilder.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 94 行
JAVA
94 行
/*
* $Id: BootJarBuilder.java,v 1.3 2004/01/20 19:30:07 epr Exp $
*/
package org.jnode.build;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.apache.tools.ant.taskdefs.Jar;
import org.apache.tools.ant.types.ZipFileSet;
import org.jnode.plugin.PluginException;
import org.jnode.plugin.model.PluginJar;
/**
* @author epr
*/
public class BootJarBuilder extends AbstractPluginsTask {
private File destFile;
public void execute() throws BuildException {
final long start = System.currentTimeMillis();
final long lmDest = destFile.lastModified();
final long lmPIL = getPluginListFile().lastModified();
final PluginList piList;
final long lmPI;
try {
piList = getPluginList();
lmPI = piList.lastModified();
} catch (PluginException ex) {
throw new BuildException(ex);
} catch (IOException ex) {
throw new BuildException(ex);
}
if ((lmPIL < lmDest) && (lmPI < lmDest)) {
// No need to do anything, skip
return;
}
destFile.delete();
try {
// Load the plugin descriptors
/*
* final PluginRegistry piRegistry; piRegistry = new PluginRegistryModel(piList.getDescriptorUrlList());
*/
final Jar jarTask = new Jar();
jarTask.setProject(getProject());
jarTask.setTaskName(getTaskName());
jarTask.setDestFile(destFile);
jarTask.setCompress(false);
final URL[] pluginList = piList.getPluginList();
for (int i = 0; i < pluginList.length; i++) {
final URL url = pluginList[i];
final PluginJar piJar = new PluginJar(null, url);
if (piJar.getDescriptor().isSystemPlugin()) {
final File f = new File(url.getPath());
final ZipFileSet fs = new ZipFileSet();
fs.createExclude().setName("plugin.xml");
fs.setSrc(f);
jarTask.addFileset(fs);
}
}
/*
* for (Iterator i = piRegistry.getDescriptorIterator(); i.hasNext(); ) { final PluginDescriptor descr = (PluginDescriptor)i.next(); final Runtime rt = descr.getRuntime(); if (rt != null) {
* final Library[] libs = rt.getLibraries(); for (int l = 0; l < libs.length; l++) { processLibrary(jarTask, libs[l], fileSets, getPluginDir()); } }
*/
// Now create the jar file
jarTask.execute();
} catch (Exception ex) {
ex.printStackTrace();
throw new BuildException(ex);
}
final long end = System.currentTimeMillis();
log("Building boot-jar took " + (end - start) + "ms");
}
/**
* @param file
*/
public void setDestFile(File file) {
destFile = file;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?