Class files are now added to the list file contents
This commit is contained in:
parent
91f42e91d0
commit
a0d552e573
2 changed files with 19 additions and 47 deletions
|
@ -63,26 +63,28 @@ public class JarUtils {
|
|||
try {
|
||||
final String name = entry.getName();
|
||||
final byte[] bytes = getBytes(jis);
|
||||
if (!name.endsWith(".class")) {
|
||||
if(!entry.isDirectory())
|
||||
files.put(name, bytes);
|
||||
} else {
|
||||
String cafebabe = String.format("%02X", bytes[0])
|
||||
+ String.format("%02X", bytes[1])
|
||||
+ String.format("%02X", bytes[2])
|
||||
+ String.format("%02X", bytes[3]);
|
||||
if(cafebabe.toLowerCase().equals("cafebabe")) {
|
||||
try {
|
||||
final ClassNode cn = getNode(bytes);
|
||||
container.classes.add(cn);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(!files.containsKey(name)){
|
||||
if (!name.endsWith(".class")) {
|
||||
if(!entry.isDirectory())
|
||||
files.put(name, bytes);
|
||||
} else {
|
||||
System.out.println(jarFile+">"+name+": Header does not start with CAFEBABE, ignoring.");
|
||||
String cafebabe = String.format("%02X", bytes[0])
|
||||
+ String.format("%02X", bytes[1])
|
||||
+ String.format("%02X", bytes[2])
|
||||
+ String.format("%02X", bytes[3]);
|
||||
if(cafebabe.toLowerCase().equals("cafebabe")) {
|
||||
try {
|
||||
final ClassNode cn = getNode(bytes);
|
||||
container.classes.add(cn);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
System.out.println(jarFile+">"+name+": Header does not start with CAFEBABE, ignoring.");
|
||||
}
|
||||
files.put(name, bytes);
|
||||
}
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
|
||||
} finally {
|
||||
|
|
|
@ -311,36 +311,6 @@ public class FileNavigationPane extends VisibleComponent implements
|
|||
ImageRenderer renderer = new ImageRenderer();
|
||||
tree.setCellRenderer(renderer);
|
||||
|
||||
if(!container.classes.isEmpty()) {
|
||||
for(ClassNode c : container.classes) {
|
||||
String name = c.name;
|
||||
final String[] spl = name.split("/");
|
||||
if (spl.length < 2) {
|
||||
root.add(new MyTreeNode(name+".class"));
|
||||
} else {
|
||||
MyTreeNode parent = root;
|
||||
for (int i1 = 0; i1 < spl.length; i1++) {
|
||||
String s = spl[i1];
|
||||
MyTreeNode child = null;
|
||||
for (int i = 0; i < parent.getChildCount(); i++) {
|
||||
if (((MyTreeNode) parent.getChildAt(i)).getUserObject()
|
||||
.equals(s)) {
|
||||
child = (MyTreeNode) parent.getChildAt(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (child == null) {
|
||||
if(i1 == spl.length-1)
|
||||
child = new MyTreeNode(s+".class");
|
||||
else
|
||||
child = new MyTreeNode(s);
|
||||
parent.add(child);
|
||||
}
|
||||
parent = child;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!container.files.isEmpty()) {
|
||||
for (final Entry<String, byte[]> entry : container.files.entrySet()) {
|
||||
|
|
Loading…
Reference in a new issue