1

私のJava開発はWindowsマシンで行われ、プロセスはcentosマシンで実行されます。すべてのJarをビルドしてcentosマシンにSCPするbashスクリプトがあります。このbashスクリプトをCygwin(java -versionは1.5.0_12)で実行しますが、centosマシンでプロセスを実行しようとすると、jVMがJarsを開くことができません。また、jar -tfを実行すると、次のようになります。

java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:75)
at sun.tools.jar.Main.list(Main.java:979)
at sun.tools.jar.Main.run(Main.java:224)
at sun.tools.jar.Main.main(Main.java:1149)

したがって、デプロイできる唯一の方法は、cmd.exeでmvnコマンドを実行して、jarをビルドし、WinSCPを使用してすべてをコピーすることです(そうすれば、jarに問題はありません)。

cygwinでmvnを実行する際の既知の問題はありますか?(mvn-versionを実行するとApacheMaven 2.2.1が返されました(r801777; 2009-08-06 22:16:01 + 0300)Javaバージョン:1.6.0_26)

ありがとうございました

4

2 に答える 2

3

解決しました。私はcygwinで解決策を見つけ、ファイルのアクセス許可を000に設定しました

/etc/fstab を編集して、ファイルの最後に次の行を追加します。

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

次に、すべての Cygwin プロセスを閉じ、新しいターミナルを開いて、ファイルに対して ls -l を再度実行します。

于 2012-05-02T12:44:31.330 に答える
2

Java アプリケーションである Maven は、Cygwin スクリプトまたは cmd.exe を介して起動された場合でも同じように実行されます。この場合の Java 実行可能ファイルは同じツールです。

まず、bash スクリプトで使用しているコピー コマンドをポストすることができます。次に、jar ファイルが CentOS ボックスにプッシュされた後、そのファイルのアクセス許可を確認しましたか? ファイルは、bash スクリプトを介して送信されたときにプロセス所有者が実際に読み取ることができますか? また、WinSCP を使用してコピーした場合と所有者/アクセス許可は同じですか?

于 2012-04-25T15:38:07.293 に答える