Allow remapping jars without Main-Class attribute (ex: Bukkit plugins)

This commit is contained in:
Agaricus 2013-01-22 00:17:01 -08:00
parent 1b15d3b29f
commit 642612e1c3

View File

@ -35,7 +35,9 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.jar.Attributes;
import java.util.jar.JarFile; import java.util.jar.JarFile;
import java.util.jar.Manifest;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -104,7 +106,19 @@ public class Jar {
public static Jar init(File file) throws IOException { public static Jar init(File file) throws IOException {
JarFile jarFile = new JarFile(file); JarFile jarFile = new JarFile(file);
String main = jarFile.getManifest().getMainAttributes().getValue("Main-Class").replace('.', '/'); String main = null;
Manifest manifest = jarFile.getManifest();
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
if (attributes != null) {
String mainClassName = attributes.getValue("Main-Class");
if (mainClassName != null) {
main = mainClassName.replace('.', '/');
}
}
}
return new Jar(jarFile, main); return new Jar(jarFile, main);
} }
} }