add java interface

This commit is contained in:
Axel Kohlmeyer
2020-10-18 01:49:19 -04:00
parent 42116fc444
commit c376b8ffa5
2 changed files with 43 additions and 0 deletions

View File

@ -16,11 +16,20 @@ endif()
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
option(BUILD_SWIG_JAVA "Build Java JNI wrapper with SWIG" OFF)
option(BUILD_SWIG_LUA "Build Lua wrapper with SWIG" OFF)
option(BUILD_SWIG_PERL5 "Build Perl5 wrapper with SWIG" OFF)
option(BUILD_SWIG_PYTHON "Build Python wrapper with SWIG" OFF)
option(BUILD_SWIG_TCL "Build Tcl wrapper with SWIG" OFF)
if(BUILD_SWIG_JAVA)
set_property(SOURCE lammps.i PROPERTY SWIG_MODULE_NAME javalammps)
swig_add_library(javalammps TYPE MODULE LANGUAGE java SOURCES lammps.i)
find_package(JNI REQUIRED)
target_include_directories(javalammps PRIVATE ${JNI_INCLUDE_DIRS})
swig_link_libraries(javalammps PRIVATE lammps ${JNI_LIBRARIES})
endif()
if(BUILD_SWIG_PYTHON)
set_property(SOURCE lammps.i PROPERTY SWIG_MODULE_NAME pylammps)
swig_add_library(pylammps TYPE MODULE LANGUAGE python SOURCES lammps.i)

34
swig/run_java_example.sh Executable file
View File

@ -0,0 +1,34 @@
#!/bin/sh
cat > example.java <<EOF
public class example {
static {
System.loadLibrary("javalammps");
}
public static void main(String argv[]) {
SWIGTYPE_p_void lmp = javalammps.lammps_open_no_mpi(0, null, null);
int ver = javalammps.lammps_version(lmp);
javalammps.lammps_command(lmp, "units real");
javalammps.lammps_command(lmp, "lattice fcc 2.5");
javalammps.lammps_command(lmp, "region box block -5 5 -5 5 -5 5");
javalammps.lammps_command(lmp, "create_box 1 box");
javalammps.lammps_command(lmp, "create_atoms 1 box");
System.out.print("LAMMPS version ");
System.out.println(ver);
System.out.print("Number of created atoms: ");
System.out.println(javalammps.lammps_get_natoms(lmp));
javalammps.lammps_close(lmp);
}
}
EOF
CLASSPATH=$PWD:${CLASSPATH-${PWD}}
LD_LIBRARY_PATH=$PWD:${LD_LIBARARY_PATH-${PWD}}
export CLASSPATH LD_LIBRARY_PATH
javac *.java
java example