2012-04-25 6 views
1

Моя разработка Java выполнена на машине Windows, и я запускаю свои процессы на компьютере centos. У меня есть сценарий bash, который строит все мои Jars и SCP их на мою машину centos. Я запускаю этот скрипт bash в Cygwin (java -version равно 1.5.0_12), но когда я пытаюсь запустить процесс в моей машине centos, jVM не может открыть Jars. Кроме того, бег баночка -tf броски:развертывание java через Cygwin

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, чтобы построить свои банки, а затем скопировать все с помощью WinSCP (таким образом у меня нет никаких проблем банки).

Есть ли какая-нибудь известная проблема с запуском mvn в cygwin? (бег МВН -версия вернулся Apache Maven 2.2.1 (r801777; 2009-08-06 22: 16: 01 + 0300) Java версия: 1.6.0_26)

спасибо

+0

Вы уверены, что проблема не в том, как вы их «scp»? – nwinkler

+1

Я бегу mvn в cygwin каждый день без проблем. Похоже, ваши банки неправильно переданы в ваши удаленные центры и как-то повреждены. –

+0

Я попытался использовать WinSCP, чтобы скопировать банку, созданную в cygwin, на мой cenos macine и получил ту же проблему, поэтому я не думаю, что это проблема в SCP – ryuchtman

ответ

3

Решено. я нашел решение в cygwin sets file permission to 000

Редактировать/и т.д./Fstab и добавьте эту строку в конце файла:

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

Затем закрыть все процессы Cygwin, открыть новый терминал и Ls -l на ваш файлы снова.

2

Maven ЯВЛЯЮЩЕЙСЯ Приложение Java работает одинаково, независимо от того, запущено ли оно через скрипт Cygwin или cmd.exe. Java-исполняемый файл в этом случае является одним и тем же инструментом.

Во-первых, вы можете отправить команду копирования, которую вы используете в сценарии bash. Во-вторых, вы проверили разрешения на файлы jar после того, как их перетащили в поле CentOS? Являются ли файлы действительно доступными для владельца процесса при отправке через ваш сценарий bash и являются ли владельцы/разрешения такими же, как при копировании с помощью WinSCP?

+0

Привет, спасибо за ваш ответ. Я просмотрел разрешения файлов, созданных скриптом, и я вижу, что никаких разрешений вообще нет во всех файлах. , так что это похоже на проблему со встроенным Cygwin, а не в процессе SCP. (создание из eclipse или cmd, я получаю разрешения) – ryuchtman

+0

Можете ли вы открыть/прочитать файл Jar, который создается на самой машине Window, либо в оболочке Cygwin, либо в cmd.exe? Кроме того, можете ли вы указать фактическую команду построения jar, которую вы вызываете с помощью скрипта Cygwin? – Jere

+0

нет, файл Jar нельзя открыть в окнах (у него вообще нет разрешений). Я создал сценарий bash, который просто создавал файл и запускал его на Cygwin, и файл имел разрешения. команда, создающая Jars, - это mvn clean install -Dmaven.test.skip = true – ryuchtman

Смежные вопросы