我从shell脚本调用java方法。它接受String参数。我应该将整个文件内容作为参数传递。
现在从shell脚本我将使用
获取整个文件内容 orgFileContent=$(awk '$1=$1' ORS='\\n' $orgFile)
当我尝试在sh中打印时...我正在获取整个内容。但是当我尝试打印这个被调用的java方法时。我只是前两行。
原因是什么?如何将整个文件作为字符串传递?
提前致谢
答案 0 :(得分:0)
假设您在Main类中有一个静态main。您可以使用 xargs 命令将文件的内容传递给正在执行的Java程序,即
$ xargs java -classpath CLASSPATH Main < youInputFile
通过这样做,文件的内容将通过管道传递给xargs命令,因此您可以使用简单的
打印文件内容System.out.println(args[0])
但是,如果您尝试执行如下所示的命令,则输入文件中存在的任何换行符都将表示新传递的参数,因此相同的Java代码将仅打印第一行,然后忽略文件的其余部分(因为第一个词是第一个arg,...)
$ cat yourInputFile | xargs java -classpath CLASSPATH Main
答案 1 :(得分:0)
只需双引号变量
java -classpath CLASSPATH Main "$orgFileContent"