2013-05-29 108 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})