2013-05-29 145 views
1

我正在編寫一個將數據和圖像存儲爲pdf的應用程序。我正在使用pdfbox。我看到這個PDF盒子有一些像命令行一樣的用於數據加密的jar。在java中運行jar(pdfbox)

有沒有辦法在我班的其中一個功能中運行這些jar?我的意思是在事件發生後啓動由此jar處理的加密。我如何從我的課堂上啓動命令行?

例如:

if(IHaveData() && FileCreated()) 
*Encrypt the data* 

在此先感謝大家誰願意幫助,即使問題可能有點傻

+0

閱讀本在命令行的事http://stackoverflow.com/questions/8496494/running-命令行在java – fGo

+0

檢查這些鏈接,如果它可以幫助你: http://stackoverflow.com/questions/1794702/how-to-run-a-jar-file-from-inside-another- java程序 http://stackoverflow.com/questions/4936266/execute-jar-file-from-a-java-program – manish

回答

2

我們不跑罐子。我們運行應用程序Java應用程序由一系列類和資源組成,這些類和資源可以存儲在文件系統或jar文件中。

運行Java應用程序,你應該使用命令行像

java -cp one.jar;two.jar;three.jar Main

其中

  • x.jar - jar文件
  • ; - 窗口分隔符。使用:對於unix
  • Main是您的入口點的完全合格的類名稱。

您顯然可以使用Runtime.getRuntime().exec()或使用ProcessBuilder從java程序運行任何命令行。 「任何」意味着你顯然可以從其他Java應用程序運行Java應用程序。

但是這種方式有很多明顯的缺點。相反,您應該運行由您正在使用的庫公開的API。如果不公開方便的API,你可以在更糟糕的情況下,直接從你的程序中調用的主要方法:

Main.main(new String[] {param1, param2})