0

作为背景,我正在使用com.jexcel.util.ExcelAdapter对通过 jasperreports 生成的 Excel 文件进行密码保护。这目前在 Windows 中执行时工作得很好,但现在当我在 linux 服务器中执行我的 java 代码时导致错误。

它说 :

java.io.IOException: Cannot run program "cmd": java.io.IOException: error=2, No such file or directory 
  at java.lang.ProcessBuilder.start(Unknown Source)
  at java.lang.Runtime.exec(Unknown Source)
  at java.lang.Runtime.exec(Unknown Source)
  at java.lang.Runtime.exec(Unknown Source)
  at com.jexcel.util.ExcelAdapter.setPasswordXlsFile(ExcelAdapter.java:65)

请帮忙。我正在使用 linux konsole 执行我的代码java -jar PassProtect.jar

我找到了这些链接:

java中受密码保护的xls/xlsx文件

使用 apache poi 创建受密码保护的 excel 文件?

两人都说Apache POIJExcel Api都没有传递保护现有 excel 文件的功能(他们所能做的就是写保护 excel 工作表)。我已经知道这个可悲的事实。:(

com.jexcel.util.ExcelAdapter实际上为我做了诀窍,它确实可以通过保护整个工作簿(因此,如果您不需要在 linux 服务器上执行代码,请尝试使用它,因为这只有效在窗户上)。这就是问题所在,我需要在 linux 中执行我的代码,如上所述,ExcelUtil 无法为我做到这一点。你知道任何类似于 ExcelUtil 但可以在 linux 上运行的东西吗?

我不能使用像Aspose这样的商业软件。我也不能将文件保存在受密码保护的 zip 文件中,因为我需要将 excel 文件传输到 ftp 服务器,而且我需要通过电子邮件发送,如果我将其存储在 zip 文件中,这是不可能的(是吗?我无法发送或传输 zip 文件本身,因为收件人会期待 .xls 文件)。

请帮我。是否有任何方法或任何 API 或任何示例代码可以密码保护 linux 接受的文件?到目前为止,我的想法已经用完了(搜索结果都在说同样的事情)。

4

1 回答 1

0

不确定,但从异常看来,适配器似乎正在尝试执行 Windows 命令外壳“cmd.exe”,这不太可能在任何不是 Windows 的操作系统下工作......也许你应该尝试不同的方法,如果您的应用程序需要在 linux 下运行。作为 Apache 项目的一部分,有一些 Java 库可用于处理办公文档。看看http://poi.apache.org/

于 2012-12-01T18:55:12.957 回答