Java Can';在Raspberry Pi上运行Netbeans远程平台时,无法读取控制台输入
我正在尝试使用控制台输入作为GUI编写一个简单的java应用程序 主要方法如下: 公共静态void main(字符串[]args){ 我的问题是,在Raspberry Pi(最终目标)“input=br.readLine();”上运行它似乎不起作用 该应用程序的目的是通过给出适当的命令来操作GPIO。无法在Raspberry Pi上调试会使开发变得单调乏味 使用Netbeans和Java 有人能帮忙吗Java Can';在Raspberry Pi上运行Netbeans远程平台时,无法读取控制台输入,java,netbeans-8,Java,Netbeans 8,我正在尝试使用控制台输入作为GUI编写一个简单的java应用程序 主要方法如下: 公共静态void main(字符串[]args){ 我的问题是,在Raspberry Pi(最终目标)“input=br.readLine();”上运行它似乎不起作用 该应用程序的目的是通过给出适当的命令来操作GPIO。无法在Raspberry Pi上调试会使开发变得单调乏味 使用Netbeans和Java 有人能帮忙吗 //lg好的,那么第一个问题,当你说“不起作用”时,确切的结果是什么?比如,它只是跳过了整个过
//lg好的,那么第一个问题,当你说“不起作用”时,确切的结果是什么?比如,它只是跳过了整个过程,还是在输入端阻塞了,而你永远都无法通过它?Netbeans中的输出窗口,其中的“输入内容”显示文本,既不回显键盘上的字符,也不让程序通过“br.redline()”命令。你能试着从命令行运行吗?我不使用Netbeans,所以不能说它是否允许像那样从IDE中使用STDIN。如果我用ssh登录到Raspberry,并执行cd'/home/pi/NetBeansProjects//CommandLine';'/home/pi/jre//bin/java'-Dfile.encoding=UTF-8-jar/home/pi/NetBeansProjects//CommandLine/dist/CommandLine.jarGram工作正常。上面的命令与Netbeans在启动远程调试会话时发送给Raspberry的命令相同。因此,这告诉我,Netbeans很可能不允许从其调试器中使用STDIN。一种解决方案是使用remove debugging(名为)运行它,这将允许您远程连接Netbeans调试器到rPI进程(或者,到本地运行但不直接在Netbeans中运行的进程)。您甚至可以使用jdwp指定一个标志,告诉它在应用程序启动时中断,这样您就可以从启动或程序连接远程调试器。好的,第一个问题,当您说“不工作”时,确切的结果是什么?比如,它只是跳过了整个过程,还是在输入时阻塞了,而您永远无法通过它?Netbeans中的输出窗口显示了“输入内容”文本,既不回显键盘上的字符,也不象程序通过了“br.redline()。你能试着从命令行运行吗?我不使用Netbeans,所以不能说它是否允许像那样从IDE中使用STDIN。如果我用ssh登录到Raspberry,并执行cd'/home/pi/NetBeansProjects//CommandLine';'/home/pi/jre//bin/java'-Dfile.encoding=UTF-8-jar/home/pi/NetBeansProjects//CommandLine/dist/CommandLine.jarGram工作正常。上面的命令与Netbeans在启动远程调试会话时发送给Raspberry的命令相同。因此,这告诉我,Netbeans很可能不允许从其调试器中使用STDIN。一种解决方案是使用remove debugging(名为)运行它,这将允许您远程连接Netbeans调试器到rPI进程(或者,到本地运行但不直接在Netbeans中运行的进程)。您甚至可以使用jdwp指定一个标志,告诉它在应用程序启动时中断,以便从启动或程序连接远程调试器。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while (input.compareToIgnoreCase("Exit")!= 0) {
System.out.print("Enter something:");
try {
input = br.readLine();
String[] arguments = input.split("\\s+");
parse(arguments);
} catch (IOException ex) {
Logger.getLogger(CB1TestApplication.class.getName()).log(Level.SEVERE, null, ex);
}
}
}