将长/大字符串作为参数传递到Java应用程序中?

时间:2012-08-10 14:20:50

标签: java php string

我正在尝试将一个大/长字符串,一个从磁盘读取的PDF二进制文件传递到Java应用程序中,到目前为止几乎没有成功。当我从本地磁盘读取文件时,该应用程序工作,所以我知道问题与我如何导入数据有关。大致这就是我所看到的:

我正在阅读,在PHP中操作pdf并使用exec();要触摸Java应用程序,这就是我使用Java的地方:

使用:

File input = new File("C:\\Users\\Jack\\Downloads\\col_terror.pdf");
document = PDDocument.load(input);

不起作用: PHP:

exec("/path/to/jar/java -jar JavaAppHere.jar $pdf_string",$ouput);

爪哇:

public static void main(String[] args) throws Exception {
...
document = PDDocument.load( args[0] );
...
}

我觉得这很简单我不理解将字符串作为args传递,尽管自从我进入Java之后已经有几年了。

1 个答案:

答案 0 :(得分:0)

请阅读PDDocument的Javadoc。如果PDDocument引用PDDocument,您可以看到在PDDocument.load(java.lang.String)期望文件名时传递数据。 您似乎也不使用escapeshellarg()

编码$ pdf_string

由于在将二进制数据作为shell参数传递时调用的变量太多,我建议不要这样做。 最简单的解决方案是将PDF写入临时文件并将文件名传递给java。另一种方法是通过stdin传递PDF数据。