我正在用java编写应用程序,将数据和图像存储到pdf中。我正在使用pdfbox。我看到pdf框有一些像数据加密那样的jar,必须由命令行运行。
有没有办法在我班级的某个功能中运行这些jar?我的意思是在事件发生后启动由此jar处理的加密。如何在班级中启动命令行?
例如:
if(IHaveData() && FileCreated())
*Encrypt the data*
提前感谢所有想要提供帮助的人,即使这个问题可能是愚蠢的或者是什么
答案 0 :(得分:2)
我们不运行罐子。我们运行应用程序Java应用程序由一组类和资源组成,这些类和资源可以存储在文件系统或jar
文件中。
要运行java应用程序,您应该使用命令行,如
java -cp one.jar;two.jar;three.jar Main
,其中
Main
是您的入口点的完全限定类名。您显然可以使用Runtime.getRuntime().exec()
或使用ProcessBuilder
从Java程序运行任何命令行。 “任何”意味着你显然可以从其他java应用程序运行java应用程序。
然而,这种方式有很多明显的缺点。相反,您应该运行您正在使用的库公开的API。如果它没有暴露方便的API,你可以在更糟糕的情况下直接调用程序中的main方法:
Main.main(new String[] {param1, param2})