diff --git a/pom.xml b/pom.xml
index c26011c..c7e3d8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,17 +82,27 @@
compilerUltimate
- org.apache.maven.plugins
- maven-jar-plugin
- 3.2.0
+ maven-assembly-plugin
+ 3.3.0
+
+ jar-with-dependencies
+
- de.maishai.Main
+ de.maishai.Compiler
- ${project.build.directory}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
diff --git a/src/main/java/de/maishai/Compiler.java b/src/main/java/de/maishai/Compiler.java
index 91a8a6a..bf22061 100644
--- a/src/main/java/de/maishai/Compiler.java
+++ b/src/main/java/de/maishai/Compiler.java
@@ -90,15 +90,25 @@ public class Compiler {
return byteCode;
}
- public static void generateByteCodeFileFromFile(List sourcePath, List classname) {
- List bytes = generateByteCodeArrayFromFile(sourcePath);
+ public static void generateByteCodeFileFromFile(List sourcePaths) {
+ List bytes = generateByteCodeArrayFromFile(sourcePaths);
for (int i = 0; i < bytes.size(); i++) {
- CodeGenUtils.writeClassfile(bytes.get(i), classname.get(i));
+ String targetPath = sourcePaths.get(i).replace(".java", ".class");
+ CodeGenUtils.writeClassfile(bytes.get(i), targetPath);
}
}
public static void main(String[] args) {
- generateByteCodeFileFromFile(List.of("src/test/testFiles/JavaTestfilesMore/ClassCanBeBytecoded.java"),
- List.of("ClassCanBeBytecoded"));
+ if (args.length < 1) {
+ System.out.println("Please provide the Java files to compile as command line arguments.");
+ return;
+ }
+
+ List sourcePaths = new ArrayList<>();
+ for (String arg : args) {
+ String sourcePath = arg.endsWith(".java") ? arg : arg + ".java";
+ sourcePaths.add(sourcePath);
+ }
+ generateByteCodeFileFromFile(sourcePaths);
}
}
diff --git a/src/main/java/de/maishai/typedast/CodeGenUtils.java b/src/main/java/de/maishai/typedast/CodeGenUtils.java
index dc5ed5f..6353d6e 100644
--- a/src/main/java/de/maishai/typedast/CodeGenUtils.java
+++ b/src/main/java/de/maishai/typedast/CodeGenUtils.java
@@ -1,8 +1,5 @@
package de.maishai.typedast;
-import de.maishai.typedast.typedclass.TypedParameter;
-import org.objectweb.asm.ClassWriter;
-
import java.io.FileOutputStream;
import java.util.List;
@@ -21,9 +18,9 @@ public class CodeGenUtils {
return builder.toString();
}
- public static void writeClassfile(byte[] code, String name) {
+ public static void writeClassfile(byte[] code, String targetPath) {
try {
- FileOutputStream fos = new FileOutputStream("output/" + name + ".class");
+ FileOutputStream fos = new FileOutputStream(targetPath);
fos.write(code);
fos.close();
} catch (java.io.IOException e) {