2012-04-25 13 views
1

私のJava開発はWindowsマシンで実行されており、私はcentosマシン上でプロセスを実行します。 私は全てのJARとSCPを自分のcentosマシンにビルドするbashスクリプトを持っています。私はCygwinでこのbashスクリプトを実行します(java -versionは1.5.0_12です)。しかし、私のcentosマシンでプロセスを実行しようとすると、JVMはJarsを開くことができません。また、スロー-tf瓶実行している:私は何の問題もないような方法は、(私のjarを構築するためにCygwinからjavaを展開する

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命令を実行しているが、その後のWinSCPを使用して、すべてをコピーします瓶)。

cygwinでmvnを実行していることで問題はありますか? (ランニングMVNの-versionは のApache Mavenの2.2.1(r801777返さ; 2009-08-06 22:16:01 + 0300) Javaバージョン:1.6.0_26)を

は、Mavenのがいるあなた

+0

問題は、あなたがそれらの上に 'scp'の方法から来ていないと確信していますか? – nwinkler

+1

私は毎日cygwinでmvnを問題なく実行しています。あなたの瓶があなたのリモートcentOSに正しく転送されず、何とか壊れているように見えます。 –

+0

WinSCPを使用してCygwinで作成したjarファイルをcenos macineにコピーしようとしましたが、同じ問題が発生したため、SCPの問題ではないと思います。 – ryuchtman

答えて

3

解決しました。 私はcygwin sets file permission to 000

/etc/fstabを編集して解決策を見つけて、ファイルの末尾に次の行を追加します。

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

その後、あなたに、すべてのCygwinのプロセスを閉じ、新しいターミナルを開き、LS -lファイルを再作成します。

2

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

まず、使用しているコピーコマンドをbashスクリプトに投稿したいと思うかもしれません。次に、CentOSボックスにプッシュされたjarファイルのパーミッションをチェックしましたか?あなたのbashスクリプトを介して送られたときにファイルがプロセス所有者に実際に読めるかどうかは、WinSCPを使用してコピーされたときと同じ所有者/権限ですか?

+0

こんにちはJere、あなたの返事をありがとう。 私はスクリプトで作成されたファイルのアクセス許可を調べましたが、すべてのファイルにアクセス権がないことがわかりました。 これはCygwinに組み込まれていて、SCPプロセスでは問題があるようです。 (eclipseまたはcmdからビルドすると、私はパーミッションを取得します) – ryuchtman

+0

Cygwinのシェルまたはcmd.exeのいずれかで、ウィンドウのマシン自体に作成されたJarファイルを開いたり、読み込んだりできますか?また、Cygwinスクリプトを使用して起動している実際のjar構築コマンドをリストできますか? – Jere

+0

いいえ、WindowsではJarファイルを開くことはできません(権限はまったくありません)。私はちょうどファイルを作成し、それをCygwinで実行したbashスクリプトを作成し、そのファイルにはパーミッションがありました。 JARファイルを作成するコマンドはmvn clean install -Dmaven.test.skip = true – ryuchtman

関連する問題