1

我正在用java编写一个将数据和图像存储到pdf的应用程序。我正在使用pdfbox。我看到 pdf 框有一些 jar,例如用于数据加密的 jar,必须通过命令行运行。

有没有办法在我班级的一个功能中运行这些 jar?我的意思是在事件发生后开始由这个 jar 处理的加密。如何从我的班级中启动命令行?

例如:

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

预先感谢所有愿意提供帮助的人,即使问题可能很愚蠢或其他什么

4

1 回答 1

2

我们不运行罐子。我们运行应用程序。Java 应用程序由可以存储在文件系统或jar文件中的类和资源的集合组成。

要运行 java 应用程序,您应该使用类似的命令行

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

在哪里

  • x.jar - jar 文件
  • ; - 窗口分隔符。用途:unix
  • Main是您的入口点的完全限定类名。

您显然可以使用Runtime.getRuntime().exec()或使用ProcessBuilder. “任何”意味着您显然可以从其他 java 应用程序运行 java 应用程序。

但是这种方式有很多明显的缺点。相反,您应该运行您正在使用的库公开的 API。如果它没有公开方便的 API,你可以在更糟糕的情况下直接从你的程序中调用 main 方法:

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

于 2013-05-29T10:24:09.457 回答