mirror of
https://github.com/SuspiciousActivity/ByteEdit.git
synced 2026-08-13 17:56:17 +00:00
CompilationBox improved
This commit is contained in:
1 parent
0f105f7d3c
commit
b2991c8e9a
2 files changed
+29
-17
No files matched your search
@@ -15,25 +15,17 @@ import java.io.PrintWriter;
|
|||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
import javax.tools.FileObject;
|
|
||||||
import javax.tools.JavaCompiler;
|
import javax.tools.JavaCompiler;
|
||||||
import javax.tools.JavaCompiler.CompilationTask;
|
|
||||||
import javax.tools.JavaFileManager;
|
|
||||||
import javax.tools.JavaFileObject;
|
|
||||||
import javax.tools.JavaFileObject.Kind;
|
|
||||||
import javax.tools.SimpleJavaFileObject;
|
import javax.tools.SimpleJavaFileObject;
|
||||||
import javax.tools.StandardJavaFileManager;
|
|
||||||
import javax.tools.ToolProvider;
|
import javax.tools.ToolProvider;
|
||||||
|
|
||||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||||
@@ -113,11 +105,13 @@ public class CompilationBox extends JFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compiler.getTask(outWriter, null, null, Arrays.asList("-d", tmpFolder.getAbsolutePath()), null,
|
compiler.getTask(outWriter, null, null,
|
||||||
Arrays.asList(new JavaSourceFromString("Compiled", source))).call();
|
Arrays.asList("-d", tmpFolder.getAbsolutePath(), "-classpath",
|
||||||
|
Main.jarFile.getAbsolutePath()),
|
||||||
|
null, Arrays.asList(new JavaSourceFromString("Compiled", source))).call();
|
||||||
String res = out.toString();
|
String res = out.toString();
|
||||||
File clazz = new File(tmpFolder, "Compiled.class");
|
|
||||||
if (res.isEmpty()) {
|
if (res.isEmpty()) {
|
||||||
|
File clazz = new File(tmpFolder, "Compiled.class");
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
InputStream is = new FileInputStream(clazz);
|
InputStream is = new FileInputStream(clazz);
|
||||||
byte[] tmp = new byte[1024];
|
byte[] tmp = new byte[1024];
|
||||||
@@ -129,13 +123,31 @@ public class CompilationBox extends JFrame {
|
|||||||
ClassReader read = new ClassReader(baos.toByteArray());
|
ClassReader read = new ClassReader(baos.toByteArray());
|
||||||
ClassNode node = new ClassNode();
|
ClassNode node = new ClassNode();
|
||||||
read.accept(node, 0);
|
read.accept(node, 0);
|
||||||
compSuccess.textArea.setText(Disassembler.disassemble(node));
|
String dis = Disassembler.disassemble(node);
|
||||||
|
File[] files = tmpFolder.listFiles();
|
||||||
|
if (files != null)
|
||||||
|
for (File f : files) {
|
||||||
|
if (f.getName().equals("Compiled.class"))
|
||||||
|
continue;
|
||||||
|
baos = new ByteArrayOutputStream();
|
||||||
|
is = new FileInputStream(f);
|
||||||
|
while ((r = is.read(tmp)) > 0) {
|
||||||
|
baos.write(tmp, 0, r);
|
||||||
|
}
|
||||||
|
is.close();
|
||||||
|
read = new ClassReader(baos.toByteArray());
|
||||||
|
node = new ClassNode();
|
||||||
|
read.accept(node, 0);
|
||||||
|
dis += "\n" + Disassembler.disassemble(node);
|
||||||
|
}
|
||||||
|
compSuccess.textArea.setText(dis);
|
||||||
compSuccess.setVisible(true);
|
compSuccess.setVisible(true);
|
||||||
} else {
|
} else {
|
||||||
Main.showError(res);
|
JOptionPane.showMessageDialog(CompilationBox.this, res, "Error!", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
for (File f : tmpFolder.listFiles()) {
|
||||||
|
Files.delete(f.toPath());
|
||||||
}
|
}
|
||||||
if (clazz.exists())
|
|
||||||
Files.delete(clazz.toPath());
|
|
||||||
Files.delete(tmpFolder.toPath());
|
Files.delete(tmpFolder.toPath());
|
||||||
} catch (IOException e1) {
|
} catch (IOException e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class Main extends JFrame {
|
|||||||
public static Main INSTANCE;
|
public static Main INSTANCE;
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
private boolean isChangingFile;
|
private boolean isChangingFile;
|
||||||
private static File jarFile;
|
public static File jarFile;
|
||||||
public static HashMap<String, byte[]> OTHER_FILES = new HashMap<>();
|
public static HashMap<String, byte[]> OTHER_FILES = new HashMap<>();
|
||||||
public static HashMap<String, ClassNode> classNodes = new HashMap<>();
|
public static HashMap<String, ClassNode> classNodes = new HashMap<>();
|
||||||
public static String currentNodeName;
|
public static String currentNodeName;
|
||||||
|
|||||||
Reference in new issue
Block a user