Setup a new Raspian installation,
installed Bellsoft Java 12,
ran the pi4j installation script
compilled a simple Main script,
ran it and got the error in the title.
openjdk 12.0.1-BellSoft 2019-04-16
LibericaJDK Runtime Environment (build 12.0.1-BellSoft+12)
LibericaJDK Server VM (build 12.0.1-BellSoft+12, mixed mode)
Simple Main.java class:
import com.pi4j.io.gpio.*;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
public class Main {
public static void main(String[] args) {
final GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_15, "MyButton", PinPullResistance.PULL_DOWN);
myButton.addListener(new GpioPinListenerDigital() {
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
System.out.println(" --> GPIO PIN STATE CHANGE: " + event.getPin() + " = "+ event.getState());
}
});
}
}
Compiled with: javac -classpath .:classes:/opt/pi4j/lib/'*' Main.java
Run cmd: java -classpath .:classes:/opt/pi4j/lib/'*' Main
Stacktrace:
Jun 09, 2019 12:56:25 AM com.pi4j.util.NativeLibraryLoader load
SEVERE: Unable to load [libpi4j.so] using path: [/lib/raspberrypi/dynamic/libpi4j.so]
java.lang.UnsatisfiedLinkError: /tmp/libpi4j11811034683535184391.so: libwiringPi.so: cannot open shared object file: No such file or directory
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
at java.base/java.lang.Runtime.load0(Runtime.java:765)
at java.base/java.lang.System.load(System.java:1866)
at com.pi4j.util.NativeLibraryLoader.loadLibraryFromClasspath(NativeLibraryLoader.java:159)
at com.pi4j.util.NativeLibraryLoader.load(NativeLibraryLoader.java:105)
at com.pi4j.wiringpi.Gpio.<clinit>(Gpio.java:189)
at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:69)
at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:125)
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:118)
at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:109)
at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:53)
at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:91)
at Main.main(Main.java:7)
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.pi4j.wiringpi.Gpio.wiringPiSetup()I
at com.pi4j.wiringpi.Gpio.wiringPiSetup(Native Method)
at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:69)
at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:125)
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:118)
at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:109)
at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:53)
at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:91)
at Main.main(Main.java:7)
My bad,
I had cloned a template system (fully upgraded, but anyway a version which did not have the wiringpi package installed as default. Installing that package mad all problems go away.
Setup a new Raspian installation, installed Bellsoft Java 12, ran the pi4j installation script compilled a simple Main script, ran it and got the error in the title.
OS:
Java:
Simple Main.java class:
Compiled with:
javac -classpath .:classes:/opt/pi4j/lib/'*' Main.java
Run cmd:java -classpath .:classes:/opt/pi4j/lib/'*' Main
Stacktrace: