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 コンソール経由でコードを実行していますjava -jar PassProtect.jar

私はこれらのリンクを見つけました:

パスワードで保護された Java の xls/xlsx ファイル

Apache poi を使用してパスワードで保護された Excel ファイルを作成しますか?

どちらも、Apache POIJExcel Apiも、既存の Excel ファイルをパス保護する機能を持っていないと述べていました (それらにできることは、Excel シートを書き込み保護することだけです)。その悲しい事実を私はすでに知っていた。:(

com.jexcel.util.ExcelAdapterは実際に私のためにトリックを行いました。実際にワークブック全体をパス保護できます (Linux サーバーでコードを実行する必要がない場合は、これを使用してみてください。 Windows で)。それが問題です。Linux でコードを実行する必要がありますが、上記で説明したように、ExcelUtil では実行できません。ExcelUtil のようなもので、代わりに Linux で動作するものを知っていますか?

Asposeのような商用ソフトウェアを使用できません。Excelファイルをftpサーバーに転送する必要があり、メールで送信する必要があるため、代わりにパスワードで保護されたzipファイルにファイルを保存することもできません.zipファイルに保存する場合、これは不可能です( zip ファイル自体を送信または転送することはできません (受信者は .xls ファイルを予期しているため)。

私を助けてください。Linuxが受け入れるファイルをパスワードで保護できる方法、API、またはサンプルコードはありますか? 現時点では、アイデアが不足しています (検索結果はすべて同じことを言っています)。

4

1 に答える 1

0

確かではありませんが、例外から、アダプターがWindowsコマンドシェル「cmd.exe」を実行しようとしているかのように見えます。これは、Windows以外のOSでは機能しそうにありません...場合によっては、別のアプローチを試す必要がありますアプリケーションは Linux で実行する必要があります。Apache プロジェクトの一部として、オフィス ドキュメントを操作するための Java ライブラリが利用できます。http://poi.apache.org/をご覧ください。

于 2012-12-01T18:55:12.957 に答える