summaryrefslogtreecommitdiff
path: root/java/src/com/zerotierone/sdk/Node.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/zerotierone/sdk/Node.java')
-rw-r--r--java/src/com/zerotierone/sdk/Node.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/java/src/com/zerotierone/sdk/Node.java b/java/src/com/zerotierone/sdk/Node.java
index 911e83d3..6b4a8729 100644
--- a/java/src/com/zerotierone/sdk/Node.java
+++ b/java/src/com/zerotierone/sdk/Node.java
@@ -31,13 +31,31 @@ import java.nio.ByteBuffer;
import java.lang.Long;
import java.net.InetSocketAddress;
import java.util.ArrayList;
+import java.io.IOException;
/**
* A ZeroTier One node
*/
public class Node {
static {
- System.loadLibrary("ZeroTierOneJNI");
+ try {
+ System.loadLibrary("ZeroTierOneJNI");
+ } catch (UnsatisfiedLinkError e) {
+ try {
+ if(System.getProperty("os.name").startsWith("Windows")) {
+ System.out.println("Arch: " + System.getProperty("sun.arch.data.model"));
+ if(System.getProperty("sun.arch.data.model").equals("64")) {
+ NativeUtils.loadLibraryFromJar("/lib/ZeroTierOneJNI_win64.dll");
+ } else {
+ NativeUtils.loadLibraryFromJar("/lib/ZeroTierOneJNI_win32.dll");
+ }
+ } else {
+ // TODO: Mac
+ }
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+ }
}
private static final String TAG = "NODE";