运行 来自 shell 带有重定向的脚本的 java 程序
Running a java program from shell script with redirection
我有一个 java 程序(Main.java、uandf.java 和 node.java),其中主程序接收输入文件的内容并执行操作。对于我的作业,我必须编写一个 shell 脚本来编译和运行程序,但输入文件必须重定向到 shell 脚本:即 shell_script.sh < file.
有没有办法将文件内容作为命令行参数传递给 java 程序?
我目前拥有的:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp Main ""
我是运行剧本./shell_script.sh < filename
java程序中的main方法:
public static void main(String args[]) {
String[] array = args[0].split("\n");
...
}
这是一件奇怪且不规范的事情,但是是的:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main "$(cat)"
通常你会从 System.in
(就像从键盘)读取你的 Java 程序,然后只使用:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main
当 运行 ./shell_script.sh < filename
时,通过 Scanner
或 BufferedReader
从 System.in
读取数据然后 return 来自 filename
的数据.
我有一个 java 程序(Main.java、uandf.java 和 node.java),其中主程序接收输入文件的内容并执行操作。对于我的作业,我必须编写一个 shell 脚本来编译和运行程序,但输入文件必须重定向到 shell 脚本:即 shell_script.sh < file.
有没有办法将文件内容作为命令行参数传递给 java 程序?
我目前拥有的:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp Main ""
我是运行剧本./shell_script.sh < filename
java程序中的main方法:
public static void main(String args[]) {
String[] array = args[0].split("\n");
...
}
这是一件奇怪且不规范的事情,但是是的:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main "$(cat)"
通常你会从 System.in
(就像从键盘)读取你的 Java 程序,然后只使用:
#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main
当 运行 ./shell_script.sh < filename
时,通过 Scanner
或 BufferedReader
从 System.in
读取数据然后 return 来自 filename
的数据.