У нас есть веб-приложение, работающее под JBoss 5, которое периодически запускает процесс 'java' (используя ProcessBuilder) для компиляции файлов в Linux.Процесс работает без проблем на компьютере разработки Windows и на виртуальной машине Ubuntu, которую мы установили.Команда выглядит следующим образом:
/usr/java/jdk1.6.0_18/bin/java -Xmx256M -DiDesigner.javabin=java -jar "/aplicaciones/jboss/nfs/pmc_tdt/bin/lib/iDesigner.jar" --compiler --obfuscate --in "81.ida" --out "directory:OUTPUT"
При этом возникает ошибка:
Unable to access jarfile "/aplicaciones/jboss/nfs/pmc_tdt/bin/lib/iDesigner.jar"
Все пути подтверждены как правильные, а путь к файлу jar заключен в двойные кавычки .После двух бутылок пива и Биг Мак системный отдел подтвердил, что пользователь ( jbossadmin ), работающий с JBoss, также является владельцем файла:
[root@miv-multicanalidad-01 lib]# pwd
/aplicaciones/jboss/nfs/pmc_tdt/bin/lib
[root@miv-multicanalidad-01 lib]# ls -l iDesigner.jar
-rw-r--r-- 1 jbossadmin jbossadmin 1329162 ene 22 2010 iDesigner.jar
Я подозреваю, что это проблема с правами , поэтому мы попросили их изменить разрешения на выполнение , но, увы, все еще без удовлетворения.
Единственное, о чем я могу думать, это то, что это перевод путиошибка или что мы не применили нужные права в нужном месте!
Редактировать: Отличное предложение от Андреа Спадаччини, однако, похоже, у нас уже есть разрешения на обходчерез путь:
drwxr-xr-x 3 root root 4096 abr 6 2010 /aplicaciones/
drwxr-xr-x+ 16 jbossadmin jbossadmin 4096 mar 7 10:13 /aplicaciones/jboss/
drwxrwxr-x+ 5 jbossadmin jbossadmin 4096 ene 25 09:21 /aplicaciones/jboss/nfs/
drwxr-xr-x 4 jbossadmin jbossadmin 4096 abr 6 16:03 /aplicaciones/jboss/nfs/pmc_tdt
drwxr-xr-x 4 jbossadmin jbossadmin 4096 sep 3 2010 /aplicaciones/jboss/nfs/pmc_tdt/bin/
drwxr-xr-x 3 jbossadmin jbossadmin 4096 abr 6 16:03 /aplicaciones/jboss/nfs/pmc_tdt/bin/lib/
Редактировать: С помощью Eva мы можем подтвердить, что при выполнении строки через командную строку (bash) она работает, но выдает ошибку, если мы выполним строкуиз класса ProcessBuilder, встроенного в файл jar, в Linux.Как сделал бы наш JBoss.Двойные кавычки вокруг параметров являются наиболее вероятной причиной проблемы здесь.