I'm writing an application that needs to use the GPIO pins on the raspberry pi, now I couldn't get pi4j to work so I just wrote the code in python and called it with java. Now I'm running this code to call my python script but I keep getting an overflow error and I'm not sure why this is my code
Gpio_On.java
package Controller;
import java.io.IOException;
public class Gpio_On extends Thread {
public String Pin;
public void setPin(String pin) {
Pin = pin;
}
public void start() {
Gpio_On thread = new Gpio_On();
thread.start();
}
public void run(){
System.out.println("in thread for gpio on PIN:" Pin);
try {
System.out.println("python3 /home/pi/gpioOn.py " Pin);
Process p = Runtime.getRuntime().exec("python3 /home/pi/gpioOn.py " Pin);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Terminal
Exception in thread "main" java.lang.StackOverflowError
at java.base/java.security.AccessControlContext.optimize(AccessControlContext.java:632)
at java.base/java.security.AccessController.getContext(AccessController.java:839)
at java.base/java.lang.Thread.<init>(Thread.java:440)
at java.base/java.lang.Thread.<init>(Thread.java:704)
at java.base/java.lang.Thread.<init>(Thread.java:473)
at Controller.Gpio_On.<init>(Gpio_On.java:5)
at Controller.Gpio_On.start(Gpio_On.java:13)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
at Controller.Gpio_On.start(Gpio_On.java:14)
this error keeps going for a long time
CodePudding user response:
You're actually overriding start(): https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#start() Just remove it and it will work.
CodePudding user response:
when making a thread start you would pass thread.start
but there's also a function in that class called start
so when calling thread.start
it's running the function that's already running so it throws an error