所以我有一个客户端和一个服务器 Java 程序。客户端使用 Java processbuilder 执行脚本,但我的问题是用户输入了需要传递给 bash 脚本的信息。所以,本质上,我需要知道如何将三个不同的字符串发送到 bash 脚本正在读取的三个不同的变量。该脚本正在复制文件,因此我宁愿不使用 java 制作 txt 文件并让脚本读取文件。我还想要一种能够在 OS X 和 Windows 上运行的方法,因此欢迎改进。我目前在 Ubuntu 上使用 Java 7。
这是我正在尝试做的一个片段:.java
Scanner bob = new Scanner(System.in);
String workingDirectory = new String(System.getProperty("user.dir"));
File tempDir = new File(workingDirectory);
String script = new String(workingDirectory + "/copyjava.sh");
System.out.print("Designate the location of the file: ");
String loc = bob.next();
System.out.print("Type the name of the file w/ extension: ");
String name = bob.next();
System.out.print("What is the location of THIS file? "); //I know there is a way to do this automagically but I can't remember how...
String wkspace = bob.next();
ProcessBuilder pb = new ProcessBuilder( script, loc, name, wkspace);
pb.start();
File myFile = new File (name);
脚本:
read loc
read name
read wkspace
cd $LOC
cp $name $wkspace