package com.cerb4.impex; import java.io.File; import java.io.FilenameFilter; import java.lang.reflect.Constructor; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; public class Main { private static URLClassLoader cl; /** * @param args */ public static void main(String[] args) { String argConfigFile = "<null>"; String javaVersion = System.getProperty("java.version"); String[] versionSplit = javaVersion.split("\\."); if(versionSplit.length < 2) { System.err.println("Java version invalid (found: "+javaVersion+"). You must have Java 5 (1.1.5) or higher. Export has been aborted."); System.exit(1); } int majorVersion = Integer.parseInt(versionSplit[0]); int minorVersion = Integer.parseInt(versionSplit[1]); if(majorVersion < 1 || (majorVersion == 1 && minorVersion < 5)) { System.err.println("Your version of Java ("+javaVersion+") is too old. You must have Java 5 (1.1.5) or higher. Export has been aborted."); System.exit(1); } if(1 != args.length) { System.err.println("Syntax: C4ImpEx.jar <config file>"); System.exit(1); } else { argConfigFile = args[0]; } if(!new File(argConfigFile).exists()) { System.err.println("Config file '" + argConfigFile + "' doesn't exist."); System.exit(1); } else { Configuration.loadConfigFile(argConfigFile); } Main.loadDrivers(); String cfgExportDriver = Configuration.get("exportDriver", ""); try { Class<?> driverClassManifest = cl.loadClass(cfgExportDriver); // System.out.println("Loading '" + driverClassManifest.getName()); Constructor<?> constr = (Constructor<?>) driverClassManifest.getConstructor(new Class[] {}); constr.newInstance(); // new Object[] {} } catch(Exception e) { e.printStackTrace(); System.exit(1); } } private static void loadDrivers() { ArrayList<URL> urls = new ArrayList<URL>(); // Load drivers from disk File dir = new File("drivers"); File[] driverFiles = dir.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".jar"); } }); for(File driverFile : driverFiles) { try { urls.add(driverFile.toURI().toURL()); // System.out.println("Adding " + driverFile.toURI().toURL()); } catch(Exception e) { e.printStackTrace(); System.exit(1); } } cl = new URLClassLoader((URL[]) urls.toArray(new URL[urls.size()])); } }