diff --git a/.gitignore b/.gitignore index ced6f437..63239606 100644 --- a/.gitignore +++ b/.gitignore @@ -45,7 +45,6 @@ _*.txt _*.diff tmp/ -bindings/java/unicorn_Unicorn.h bindings/python/build/ bindings/python/dist/ bindings/python/src/ diff --git a/bindings/const_generator.py b/bindings/const_generator.py index 00096c6d..40e02048 100644 --- a/bindings/const_generator.py +++ b/bindings/const_generator.py @@ -73,7 +73,7 @@ template = { 'header': "// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT\n\npackage unicorn;\n\npublic interface %sConst {\n", 'footer': "\n}\n", 'line_format': ' public static final int UC_%s = %s;\n', - 'out_file': './java/unicorn/%sConst.java', + 'out_file': './java/src/main/java/unicorn/%sConst.java', # prefixes for constant filenames of all archs - case sensitive 'arm.h': 'Arm', 'arm64.h': 'Arm64', diff --git a/bindings/java/.gitignore b/bindings/java/.gitignore new file mode 100644 index 00000000..b2a1df87 --- /dev/null +++ b/bindings/java/.gitignore @@ -0,0 +1,2 @@ +target/ +unicorn_Unicorn.h diff --git a/bindings/java/Makefile b/bindings/java/Makefile index 7fb72495..9dae6098 100644 --- a/bindings/java/Makefile +++ b/bindings/java/Makefile @@ -1,18 +1,14 @@ -all: jar lib samples +# Makefile for the native JNI library. Automatically called by Maven. -JC=javac +JAVA_HOME ?= $(shell java -XshowSettings:properties -version 2>&1 | sed -n 's/ *java.home = //p') -JAVA_HOME := $(shell readlink -f `which $(JC)` | sed "s:/bin/$(JC)::") - -JAVA_INC := $(shell realpath $(JAVA_HOME)/include) +ifeq ($(JAVA_HOME),) + $(error JAVA_HOME could not be determined; please set it manually (make JAVA_HOME=...)) +endif +JAVA_INC := $(JAVA_HOME)/include JAVA_PLATFORM_INC := $(shell dirname `find $(JAVA_INC) -name jni_md.h`) - -UNICORN_INC=../../include - -SAMPLES := $(shell ls samples/*.java) -TESTS := $(shell ls tests/*.java) -SRC := $(shell ls unicorn/*.java) +UNICORN_INC := ../../include OS := $(shell uname) ifeq ($(OS),Darwin) @@ -23,67 +19,29 @@ else LIB_EXT=.dll endif +all: libunicorn_java$(LIB_EXT) + CC=gcc CFLAGS=-fPIC LDFLAGS=-shared -fPIC -LIBS=-lunicorn -LIBDIR=-L../../ +# May also use -lunicorn to dynamically link against the installed unicorn +LIBS=../../build/libunicorn.a INCS=-I$(JAVA_INC) -I$(JAVA_PLATFORM_INC) -I$(UNICORN_INC) -CLASSPATH=./ - -.SUFFIXES: .java .class - -tests/%.class: tests/%.java - $(JC) -Xlint:deprecation -classpath .:unicorn.jar:testdep/junit-4.13.2.jar $(JFLAGS) $< - -%.class: %.java - $(JC) -Xlint:deprecation -classpath .:unicorn.jar $(JFLAGS) $< - OBJS=unicorn_Unicorn.o -JARFILE=unicorn.jar - -%.o: %.c - $(CC) -c $(CFLAGS) $(INCS) $< -o $@ - -unicorn_Unicorn.h: unicorn/Unicorn.java - $(JC) -h . $< +unicorn_Unicorn.h: src/main/java/unicorn/Unicorn.java + javah -cp src/main/java -o $@ unicorn.Unicorn unicorn_Unicorn.o: unicorn_Unicorn.c unicorn_Unicorn.h $(CC) -O2 -Wall -Wextra -Wno-unused-parameter -c $(CFLAGS) $(INCS) $< -o $@ -libunicorn_java$(LIB_EXT): unicorn_Unicorn.o - -lib: libunicorn_java$(LIB_EXT) unicorn_Unicorn.h - $(CC) -o $< $(LDFLAGS) $(OBJS) $(LIBDIR) $(LIBS) - -samples: $(SAMPLES:.java=.class) -tests: $(TESTS:.java=.class) -jarfiles: $(SRC:.java=.class) - -jar: jarfiles - jar cf $(JARFILE) unicorn/*.class - -test: lib samples tests - java -Xcheck:jni -cp .:testdep/hamcrest-2.2.jar:testdep/junit-4.13.2.jar org.junit.runner.JUnitCore $(subst /,.,$(TESTS:.java=)) - -install: lib jar - cp libunicorn_java$(LIB_EXT) /usr/lib - cp $(JARFILE) /usr/share/java - -uninstall: - rm -f /usr/lib/libunicorn_java$(LIB_EXT) - rm -f /usr/share/java/$(JARFILE) - -gen_const: - cd .. && python3 const_generator.py java +libunicorn_java$(LIB_EXT): $(OBJS) + $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LIBS) clean: - rm -f unicorn/*.class - rm -f samples/*.class - rm -f *.so - rm -f *.dylib - rm -f *.dll + rm -f libunicorn_java$(LIB_EXT) + rm -f unicorn_Unicorn.h + rm -f $(OBJS) -.PHONY: all lib samples jar install uninstall gen_const clean +.PHONY: all clean diff --git a/bindings/java/README.TXT b/bindings/java/README.TXT deleted file mode 100644 index 471adb18..00000000 --- a/bindings/java/README.TXT +++ /dev/null @@ -1,37 +0,0 @@ -This documentation explains how to install the Java binding for Unicorn -from source. - -0. Install the core engine as dependency - - Follow README in the root directory to compile & install the core. - - On *nix, this can simply done by: - - $ sudo ./make.sh install - - -1. Install a JDK for your platform. When done, make sure the JDK tools - are in your PATH. - -2. Change directories into the java bindings, build and install - - $ cd bindings/java - $ make - $ sudo make install - $ make samples - -The samples directory contains some sample code to show how to use Unicorn API. - -- Sample_.java - These show how to access architecture-specific information for each - architecture. - -- Shellcode.java - This shows how to analyze a Linux shellcode. - -- SampleNetworkAuditing.java - Unicorn sample for auditing network connection and file handling in shellcode. - -To uninstall Java binding for Unicorn: - - $ sudo make uninstall diff --git a/bindings/java/README.md b/bindings/java/README.md new file mode 100644 index 00000000..e25827a4 --- /dev/null +++ b/bindings/java/README.md @@ -0,0 +1,39 @@ +This documentation explains how to install the Java binding for Unicorn +from source. + +0. Follow `docs/COMPILE.md` in the root directory to compile the core to the `build` directory. + + Note: by default, the Java binding native library will be built by statically linking to + `../../build/libunicorn.a`, thereby removing `libunicorn` as a runtime dependency, but + making the produced native library `libunicorn_java` bigger. + + If you instead want to dynamically link against the installed `libunicorn`, change + `LIBS=../../build/libunicorn.a` to `LIBS=-lunicorn` in `Makefile`. + +1. Install a JDK for your platform. + +2. Install Maven: https://maven.apache.org/install.html. + +3. Change directories into the java bindings and build the Maven package: + + $ mvn package + +This will automatically build and test the Unicorn Java bindings. + +The bindings consist of the native JNI library (`libunicorn_java.{so,dylib,dll}`) +and the Java JAR (`target/unicorn-2.xx.jar`). You will need to have the native +library on `java.library.path` and the JAR on your classpath. + +The `src/main/test/java` directory contains some sample code to show how to use Unicorn API. +`samples` is a set of sample classes showcasing the various features of the Unicorn API, +while `tests` is a set of JUnit tests for the API. + +- `Sample_.java`: + These show how to access architecture-specific information for each + architecture. + +- `Shellcode.java`: + This shows how to analyze a Linux shellcode. + +- `SampleNetworkAuditing.java`: + Unicorn sample for auditing network connection and file handling in shellcode. diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml new file mode 100644 index 00000000..fa5da8f2 --- /dev/null +++ b/bindings/java/pom.xml @@ -0,0 +1,92 @@ + + + + 4.0.0 + + org.unicorn-engine + unicorn + 2.0 + + unicorn + https://www.unicorn-engine.org + + + UTF-8 + 1.8 + 1.8 + + + + + junit + junit + 4.13.2 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + generate-consts + generate-sources + + exec + + + python3 + + const_generator.py + java + + ${project.basedir}/.. + + + + compile-jni-lib + compile + + exec + + + make + + JAVA_HOME=${java.home} + all + + + + + clean-jni-lib + clean + + exec + + + make + + clean + + + + + + + + + diff --git a/bindings/java/unicorn/Arm64Const.java b/bindings/java/src/main/java/unicorn/Arm64Const.java similarity index 100% rename from bindings/java/unicorn/Arm64Const.java rename to bindings/java/src/main/java/unicorn/Arm64Const.java diff --git a/bindings/java/unicorn/Arm64SysHook.java b/bindings/java/src/main/java/unicorn/Arm64SysHook.java similarity index 100% rename from bindings/java/unicorn/Arm64SysHook.java rename to bindings/java/src/main/java/unicorn/Arm64SysHook.java diff --git a/bindings/java/unicorn/Arm64_CP.java b/bindings/java/src/main/java/unicorn/Arm64_CP.java similarity index 100% rename from bindings/java/unicorn/Arm64_CP.java rename to bindings/java/src/main/java/unicorn/Arm64_CP.java diff --git a/bindings/java/unicorn/ArmConst.java b/bindings/java/src/main/java/unicorn/ArmConst.java similarity index 100% rename from bindings/java/unicorn/ArmConst.java rename to bindings/java/src/main/java/unicorn/ArmConst.java diff --git a/bindings/java/unicorn/Arm_CP.java b/bindings/java/src/main/java/unicorn/Arm_CP.java similarity index 100% rename from bindings/java/unicorn/Arm_CP.java rename to bindings/java/src/main/java/unicorn/Arm_CP.java diff --git a/bindings/java/unicorn/BlockHook.java b/bindings/java/src/main/java/unicorn/BlockHook.java similarity index 100% rename from bindings/java/unicorn/BlockHook.java rename to bindings/java/src/main/java/unicorn/BlockHook.java diff --git a/bindings/java/unicorn/CodeHook.java b/bindings/java/src/main/java/unicorn/CodeHook.java similarity index 100% rename from bindings/java/unicorn/CodeHook.java rename to bindings/java/src/main/java/unicorn/CodeHook.java diff --git a/bindings/java/unicorn/CpuidHook.java b/bindings/java/src/main/java/unicorn/CpuidHook.java similarity index 100% rename from bindings/java/unicorn/CpuidHook.java rename to bindings/java/src/main/java/unicorn/CpuidHook.java diff --git a/bindings/java/unicorn/EdgeGeneratedHook.java b/bindings/java/src/main/java/unicorn/EdgeGeneratedHook.java similarity index 100% rename from bindings/java/unicorn/EdgeGeneratedHook.java rename to bindings/java/src/main/java/unicorn/EdgeGeneratedHook.java diff --git a/bindings/java/unicorn/EventMemHook.java b/bindings/java/src/main/java/unicorn/EventMemHook.java similarity index 100% rename from bindings/java/unicorn/EventMemHook.java rename to bindings/java/src/main/java/unicorn/EventMemHook.java diff --git a/bindings/java/unicorn/Hook.java b/bindings/java/src/main/java/unicorn/Hook.java similarity index 100% rename from bindings/java/unicorn/Hook.java rename to bindings/java/src/main/java/unicorn/Hook.java diff --git a/bindings/java/unicorn/InHook.java b/bindings/java/src/main/java/unicorn/InHook.java similarity index 100% rename from bindings/java/unicorn/InHook.java rename to bindings/java/src/main/java/unicorn/InHook.java diff --git a/bindings/java/unicorn/InstructionHook.java b/bindings/java/src/main/java/unicorn/InstructionHook.java similarity index 100% rename from bindings/java/unicorn/InstructionHook.java rename to bindings/java/src/main/java/unicorn/InstructionHook.java diff --git a/bindings/java/unicorn/InterruptHook.java b/bindings/java/src/main/java/unicorn/InterruptHook.java similarity index 100% rename from bindings/java/unicorn/InterruptHook.java rename to bindings/java/src/main/java/unicorn/InterruptHook.java diff --git a/bindings/java/unicorn/InvalidInstructionHook.java b/bindings/java/src/main/java/unicorn/InvalidInstructionHook.java similarity index 100% rename from bindings/java/unicorn/InvalidInstructionHook.java rename to bindings/java/src/main/java/unicorn/InvalidInstructionHook.java diff --git a/bindings/java/unicorn/M68kConst.java b/bindings/java/src/main/java/unicorn/M68kConst.java similarity index 100% rename from bindings/java/unicorn/M68kConst.java rename to bindings/java/src/main/java/unicorn/M68kConst.java diff --git a/bindings/java/unicorn/MemHook.java b/bindings/java/src/main/java/unicorn/MemHook.java similarity index 100% rename from bindings/java/unicorn/MemHook.java rename to bindings/java/src/main/java/unicorn/MemHook.java diff --git a/bindings/java/unicorn/MemRegion.java b/bindings/java/src/main/java/unicorn/MemRegion.java similarity index 100% rename from bindings/java/unicorn/MemRegion.java rename to bindings/java/src/main/java/unicorn/MemRegion.java diff --git a/bindings/java/unicorn/MipsConst.java b/bindings/java/src/main/java/unicorn/MipsConst.java similarity index 100% rename from bindings/java/unicorn/MipsConst.java rename to bindings/java/src/main/java/unicorn/MipsConst.java diff --git a/bindings/java/unicorn/MmioReadHandler.java b/bindings/java/src/main/java/unicorn/MmioReadHandler.java similarity index 100% rename from bindings/java/unicorn/MmioReadHandler.java rename to bindings/java/src/main/java/unicorn/MmioReadHandler.java diff --git a/bindings/java/unicorn/MmioWriteHandler.java b/bindings/java/src/main/java/unicorn/MmioWriteHandler.java similarity index 100% rename from bindings/java/unicorn/MmioWriteHandler.java rename to bindings/java/src/main/java/unicorn/MmioWriteHandler.java diff --git a/bindings/java/unicorn/OutHook.java b/bindings/java/src/main/java/unicorn/OutHook.java similarity index 100% rename from bindings/java/unicorn/OutHook.java rename to bindings/java/src/main/java/unicorn/OutHook.java diff --git a/bindings/java/unicorn/PpcConst.java b/bindings/java/src/main/java/unicorn/PpcConst.java similarity index 100% rename from bindings/java/unicorn/PpcConst.java rename to bindings/java/src/main/java/unicorn/PpcConst.java diff --git a/bindings/java/unicorn/RiscvConst.java b/bindings/java/src/main/java/unicorn/RiscvConst.java similarity index 100% rename from bindings/java/unicorn/RiscvConst.java rename to bindings/java/src/main/java/unicorn/RiscvConst.java diff --git a/bindings/java/unicorn/S390xConst.java b/bindings/java/src/main/java/unicorn/S390xConst.java similarity index 100% rename from bindings/java/unicorn/S390xConst.java rename to bindings/java/src/main/java/unicorn/S390xConst.java diff --git a/bindings/java/unicorn/SparcConst.java b/bindings/java/src/main/java/unicorn/SparcConst.java similarity index 100% rename from bindings/java/unicorn/SparcConst.java rename to bindings/java/src/main/java/unicorn/SparcConst.java diff --git a/bindings/java/unicorn/SyscallHook.java b/bindings/java/src/main/java/unicorn/SyscallHook.java similarity index 100% rename from bindings/java/unicorn/SyscallHook.java rename to bindings/java/src/main/java/unicorn/SyscallHook.java diff --git a/bindings/java/unicorn/TcgOpcodeHook.java b/bindings/java/src/main/java/unicorn/TcgOpcodeHook.java similarity index 100% rename from bindings/java/unicorn/TcgOpcodeHook.java rename to bindings/java/src/main/java/unicorn/TcgOpcodeHook.java diff --git a/bindings/java/unicorn/TlbFillHook.java b/bindings/java/src/main/java/unicorn/TlbFillHook.java similarity index 100% rename from bindings/java/unicorn/TlbFillHook.java rename to bindings/java/src/main/java/unicorn/TlbFillHook.java diff --git a/bindings/java/unicorn/TranslationBlock.java b/bindings/java/src/main/java/unicorn/TranslationBlock.java similarity index 100% rename from bindings/java/unicorn/TranslationBlock.java rename to bindings/java/src/main/java/unicorn/TranslationBlock.java diff --git a/bindings/java/unicorn/TriCoreConst.java b/bindings/java/src/main/java/unicorn/TriCoreConst.java similarity index 100% rename from bindings/java/unicorn/TriCoreConst.java rename to bindings/java/src/main/java/unicorn/TriCoreConst.java diff --git a/bindings/java/unicorn/Unicorn.java b/bindings/java/src/main/java/unicorn/Unicorn.java similarity index 100% rename from bindings/java/unicorn/Unicorn.java rename to bindings/java/src/main/java/unicorn/Unicorn.java diff --git a/bindings/java/unicorn/UnicornConst.java b/bindings/java/src/main/java/unicorn/UnicornConst.java similarity index 98% rename from bindings/java/unicorn/UnicornConst.java rename to bindings/java/src/main/java/unicorn/UnicornConst.java index 24d58c26..8ab6fdb1 100644 --- a/bindings/java/unicorn/UnicornConst.java +++ b/bindings/java/src/main/java/unicorn/UnicornConst.java @@ -77,6 +77,7 @@ public interface UnicornConst { public static final int UC_ERR_HOOK_EXIST = 19; public static final int UC_ERR_RESOURCE = 20; public static final int UC_ERR_EXCEPTION = 21; + public static final int UC_ERR_OVERFLOW = 22; public static final int UC_MEM_READ = 16; public static final int UC_MEM_WRITE = 17; public static final int UC_MEM_FETCH = 18; @@ -142,6 +143,7 @@ public interface UnicornConst { public static final int UC_CTL_TB_FLUSH = 10; public static final int UC_CTL_TLB_FLUSH = 11; public static final int UC_CTL_TLB_TYPE = 12; + public static final int UC_CTL_TCG_BUFFER_SIZE = 13; public static final int UC_PROT_NONE = 0; public static final int UC_PROT_READ = 1; diff --git a/bindings/java/unicorn/UnicornException.java b/bindings/java/src/main/java/unicorn/UnicornException.java similarity index 100% rename from bindings/java/unicorn/UnicornException.java rename to bindings/java/src/main/java/unicorn/UnicornException.java diff --git a/bindings/java/unicorn/X86Const.java b/bindings/java/src/main/java/unicorn/X86Const.java similarity index 100% rename from bindings/java/unicorn/X86Const.java rename to bindings/java/src/main/java/unicorn/X86Const.java diff --git a/bindings/java/unicorn/X86_Float80.java b/bindings/java/src/main/java/unicorn/X86_Float80.java similarity index 100% rename from bindings/java/unicorn/X86_Float80.java rename to bindings/java/src/main/java/unicorn/X86_Float80.java diff --git a/bindings/java/unicorn/X86_MMR.java b/bindings/java/src/main/java/unicorn/X86_MMR.java similarity index 100% rename from bindings/java/unicorn/X86_MMR.java rename to bindings/java/src/main/java/unicorn/X86_MMR.java diff --git a/bindings/java/unicorn/X86_MSR.java b/bindings/java/src/main/java/unicorn/X86_MSR.java similarity index 100% rename from bindings/java/unicorn/X86_MSR.java rename to bindings/java/src/main/java/unicorn/X86_MSR.java diff --git a/bindings/java/samples/SampleNetworkAuditing.java b/bindings/java/src/test/java/samples/SampleNetworkAuditing.java similarity index 100% rename from bindings/java/samples/SampleNetworkAuditing.java rename to bindings/java/src/test/java/samples/SampleNetworkAuditing.java diff --git a/bindings/java/samples/Sample_arm.java b/bindings/java/src/test/java/samples/Sample_arm.java similarity index 100% rename from bindings/java/samples/Sample_arm.java rename to bindings/java/src/test/java/samples/Sample_arm.java diff --git a/bindings/java/samples/Sample_arm64.java b/bindings/java/src/test/java/samples/Sample_arm64.java similarity index 100% rename from bindings/java/samples/Sample_arm64.java rename to bindings/java/src/test/java/samples/Sample_arm64.java diff --git a/bindings/java/samples/Sample_ctl.java b/bindings/java/src/test/java/samples/Sample_ctl.java similarity index 100% rename from bindings/java/samples/Sample_ctl.java rename to bindings/java/src/test/java/samples/Sample_ctl.java diff --git a/bindings/java/samples/Sample_m68k.java b/bindings/java/src/test/java/samples/Sample_m68k.java similarity index 100% rename from bindings/java/samples/Sample_m68k.java rename to bindings/java/src/test/java/samples/Sample_m68k.java diff --git a/bindings/java/samples/Sample_mips.java b/bindings/java/src/test/java/samples/Sample_mips.java similarity index 100% rename from bindings/java/samples/Sample_mips.java rename to bindings/java/src/test/java/samples/Sample_mips.java diff --git a/bindings/java/samples/Sample_mmu.java b/bindings/java/src/test/java/samples/Sample_mmu.java similarity index 100% rename from bindings/java/samples/Sample_mmu.java rename to bindings/java/src/test/java/samples/Sample_mmu.java diff --git a/bindings/java/samples/Sample_ppc.java b/bindings/java/src/test/java/samples/Sample_ppc.java similarity index 100% rename from bindings/java/samples/Sample_ppc.java rename to bindings/java/src/test/java/samples/Sample_ppc.java diff --git a/bindings/java/samples/Sample_riscv.java b/bindings/java/src/test/java/samples/Sample_riscv.java similarity index 100% rename from bindings/java/samples/Sample_riscv.java rename to bindings/java/src/test/java/samples/Sample_riscv.java diff --git a/bindings/java/samples/Sample_s390x.java b/bindings/java/src/test/java/samples/Sample_s390x.java similarity index 100% rename from bindings/java/samples/Sample_s390x.java rename to bindings/java/src/test/java/samples/Sample_s390x.java diff --git a/bindings/java/samples/Sample_sparc.java b/bindings/java/src/test/java/samples/Sample_sparc.java similarity index 100% rename from bindings/java/samples/Sample_sparc.java rename to bindings/java/src/test/java/samples/Sample_sparc.java diff --git a/bindings/java/samples/Sample_tricore.java b/bindings/java/src/test/java/samples/Sample_tricore.java similarity index 100% rename from bindings/java/samples/Sample_tricore.java rename to bindings/java/src/test/java/samples/Sample_tricore.java diff --git a/bindings/java/samples/Sample_x86.java b/bindings/java/src/test/java/samples/Sample_x86.java similarity index 100% rename from bindings/java/samples/Sample_x86.java rename to bindings/java/src/test/java/samples/Sample_x86.java diff --git a/bindings/java/samples/Sample_x86_mmr.java b/bindings/java/src/test/java/samples/Sample_x86_mmr.java similarity index 100% rename from bindings/java/samples/Sample_x86_mmr.java rename to bindings/java/src/test/java/samples/Sample_x86_mmr.java diff --git a/bindings/java/samples/Shellcode.java b/bindings/java/src/test/java/samples/Shellcode.java similarity index 100% rename from bindings/java/samples/Shellcode.java rename to bindings/java/src/test/java/samples/Shellcode.java diff --git a/bindings/java/samples/Utils.java b/bindings/java/src/test/java/samples/Utils.java similarity index 100% rename from bindings/java/samples/Utils.java rename to bindings/java/src/test/java/samples/Utils.java diff --git a/bindings/java/tests/FunctionalityTests.java b/bindings/java/src/test/java/tests/FunctionalityTests.java similarity index 100% rename from bindings/java/tests/FunctionalityTests.java rename to bindings/java/src/test/java/tests/FunctionalityTests.java diff --git a/bindings/java/tests/HookTests.java b/bindings/java/src/test/java/tests/HookTests.java similarity index 100% rename from bindings/java/tests/HookTests.java rename to bindings/java/src/test/java/tests/HookTests.java diff --git a/bindings/java/tests/MemTests.java b/bindings/java/src/test/java/tests/MemTests.java similarity index 100% rename from bindings/java/tests/MemTests.java rename to bindings/java/src/test/java/tests/MemTests.java diff --git a/bindings/java/tests/RegTests.java b/bindings/java/src/test/java/tests/RegTests.java similarity index 100% rename from bindings/java/tests/RegTests.java rename to bindings/java/src/test/java/tests/RegTests.java diff --git a/bindings/java/tests/RegressionTests.java b/bindings/java/src/test/java/tests/RegressionTests.java similarity index 100% rename from bindings/java/tests/RegressionTests.java rename to bindings/java/src/test/java/tests/RegressionTests.java diff --git a/bindings/java/tests/TestSamples.java b/bindings/java/src/test/java/tests/TestSamples.java similarity index 100% rename from bindings/java/tests/TestSamples.java rename to bindings/java/src/test/java/tests/TestSamples.java diff --git a/bindings/java/testdep/hamcrest-2.2.jar b/bindings/java/testdep/hamcrest-2.2.jar deleted file mode 100644 index 71065788..00000000 Binary files a/bindings/java/testdep/hamcrest-2.2.jar and /dev/null differ diff --git a/bindings/java/testdep/junit-4.13.2.jar b/bindings/java/testdep/junit-4.13.2.jar deleted file mode 100644 index 6da55d8b..00000000 Binary files a/bindings/java/testdep/junit-4.13.2.jar and /dev/null differ