59 lines
1.3 KiB
Markdown
59 lines
1.3 KiB
Markdown
# Java example
|
|
|
|
## Build the JAR
|
|
|
|
From the top-level `libzt` directory:
|
|
|
|
```
|
|
./build.sh host-jar
|
|
```
|
|
|
|
Should result in something like:
|
|
|
|
```
|
|
dist
|
|
└── linux-x64-jar-release
|
|
└── pkg
|
|
└── libzt-1.8.10.jar
|
|
```
|
|
|
|
Copy the JAR to the working directory:
|
|
|
|
*NOTE: If you've built multiple variants of the JAR such as debug/release or mac/linux you will need to specify their exact path in the following command. If not, you can use the wildcard form:*
|
|
|
|
|
|
```
|
|
cp -f dist/*/pkg/*.jar examples/java/libzt.jar
|
|
```
|
|
|
|
Navigate to the `examples/java` directory and extract the `libzt.so|dylib|dll` dynamic library from the JAR into the working directory:
|
|
|
|
```
|
|
jar xf *.jar libzt.dylib libzt.so libzt.dll
|
|
```
|
|
|
|
## Build the example app
|
|
|
|
```
|
|
javac -cp *.jar Example.java
|
|
```
|
|
|
|
## Run the example app
|
|
|
|
```
|
|
java -Djava.library.path=. -cp ".:libzt.jar" Example server id_path 0123456789abcdef 9997
|
|
java -Djava.library.path=. -cp ".:libzt.jar" Example client id_path 0123456789abcdef ip.ip.ip.ip 9997
|
|
```
|
|
|
|
## Clean
|
|
|
|
```
|
|
rm -rf *.dylib *.so *.jar *.dll *.class
|
|
```
|
|
|
|
## Links
|
|
|
|
- Getting Started: [docs.zerotier.com/sockets](https://docs.zerotier.com/sockets/tutorial.html)
|
|
- Java API: [docs.zerotier.com/sockets-java](https://docs.zerotier.com/sockets-java/)
|
|
- Source [src/bindings/java](../../src/bindings/java)
|