diff --git a/installer/java/build.xml b/installer/java/build.xml index aba97d938552b43945de80618d01ac0e0a679c29..be911236a587fdb5d5e6856c8164bf02c8d5646a 100644 --- a/installer/java/build.xml +++ b/installer/java/build.xml @@ -49,6 +49,7 @@ <fileset dir="../../core/java/build/obj" includes="**/FileUtil.class"/> <fileset dir="./build/obj" includes="**" /> <manifest> + <attribute name="Main-Class" value="net.i2p.installer.Main" /> <attribute name="Built-By" value="${build.built-by}" /> <attribute name="Build-Date" value="${build.timestamp}" /> <attribute name="Base-Revision" value="${workspace.version}" /> diff --git a/installer/java/src/net/i2p/installer/Main.java b/installer/java/src/net/i2p/installer/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..7cdd7607c7e3fe98dbe7c405fa57503f4b37fd25 --- /dev/null +++ b/installer/java/src/net/i2p/installer/Main.java @@ -0,0 +1,36 @@ +package net.i2p.installer; + +/** + * <p> + * Execute one of the other classes in this package. + * Workaround for izpack bug #162 / our bug #912 + * http://jira.codehaus.org/browse/IZPACK-162 + * http://trac.i2p2.i2p/ticket/912 + * </p> + * Usage: <code>copy|delete|exec|fixwinpaths args...</code><br> + * + * @since 0.9.6 + */ +public class Main { + + private static final String USAGE = "Usage: {copy|delete|exec|fixwinpaths} [args...]"; + + public static void main(String args[]) { + if (args.length == 0) + throw new IllegalArgumentException(USAGE); + String cmd = args[0]; + String[] shift = new String[args.length - 1]; + if (shift.length > 0) + System.arraycopy(args, 1, shift, 0, shift.length); + if (cmd.equals("copy")) + Copy.main(shift); + else if (cmd.equals("delete")) + Delete.main(shift); + else if (cmd.equals("exec")) + Exec.main(shift); + else if (cmd.equals("fixwinpaths")) + FixWinPaths.main(shift); + else + throw new IllegalArgumentException(USAGE); + } +}