使用 Java 在 OS X 和 运行 命令上启动终端
Launch terminal on OS X and run commands using Java
我正在开发 JavaFX 应用程序,但我不知道如何在 iOS 上启动的终端上编写 ssh 命令。
try {
Process process = Runtime.getRuntime().exec("/usr/bin/open -a /Applications/Utilities/Terminal.app /bin/bash");
int launched = process.waitFor();
BufferedWriter terminal = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
System.out.println(launched);
terminal.write("/usr/bin/ssh -o CheckHostIP=no -o TCPKeepAlive=yes -o StrictHostKeyChecking=no -o ServerAliveInterval=120 -o ServerAliveCountMax=100 -i ~/.aws/.ec2/dublin.pem ubuntu@"
+ selectedRow.get(publicDnsNameIndex).getValue() + "\n");
} catch (Exception e) {
e.printStackTrace();
}
launched
始终为 0,因此我无法再写入进程。
按照this的建议。我必须使用 /usr/bin/osascript
try {
final ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/osascript",
"-e", "tell app \"Terminal\"",
"-e", "set currentTab to do script " +
"(\"/usr/bin/ssh -o CheckHostIP=no -o TCPKeepAlive=yes -o StrictHostKeyChecking=no -o ServerAliveInterval=120 -o ServerAliveCountMax=100 -i ~/.aws/.ec2/dublin.pem ubuntu@" +
selectedRow.get(publicDnsNameIndex).getValue() + "\")",
"-e", "end tell");
final Process process = processBuilder.start();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
我正在开发 JavaFX 应用程序,但我不知道如何在 iOS 上启动的终端上编写 ssh 命令。
try {
Process process = Runtime.getRuntime().exec("/usr/bin/open -a /Applications/Utilities/Terminal.app /bin/bash");
int launched = process.waitFor();
BufferedWriter terminal = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
System.out.println(launched);
terminal.write("/usr/bin/ssh -o CheckHostIP=no -o TCPKeepAlive=yes -o StrictHostKeyChecking=no -o ServerAliveInterval=120 -o ServerAliveCountMax=100 -i ~/.aws/.ec2/dublin.pem ubuntu@"
+ selectedRow.get(publicDnsNameIndex).getValue() + "\n");
} catch (Exception e) {
e.printStackTrace();
}
launched
始终为 0,因此我无法再写入进程。
按照this的建议。我必须使用 /usr/bin/osascript
try {
final ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/osascript",
"-e", "tell app \"Terminal\"",
"-e", "set currentTab to do script " +
"(\"/usr/bin/ssh -o CheckHostIP=no -o TCPKeepAlive=yes -o StrictHostKeyChecking=no -o ServerAliveInterval=120 -o ServerAliveCountMax=100 -i ~/.aws/.ec2/dublin.pem ubuntu@" +
selectedRow.get(publicDnsNameIndex).getValue() + "\")",
"-e", "end tell");
final Process process = processBuilder.start();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}