2010-07-02 3 views
-1

Я пытаюсь запустить exe-файл со стороны сервера на GWT, но это дает мне ошибку доступ error.Exact является: -Запуск .exe на стороне сервера

java.security.AccessControlException: доступ запрещен (java.io.FilePermission <> выполнить) в java.security.AccessControlContext.checkPermission (Неизвестный источник) в java.security.AccessController.checkPermission (Неизвестный источник) в java.lang.SecurityManager. checkPermission (Неизвестно Источник) на com.google.appengine.tools.development.DevAppServerFactory $ CustomSecurityManager.checkPermission (DevAppServerFactory.java:166) на java.lang.SecurityManager.checkExec (Неизвестный источник) в java.lang.ProcessBuilder.start (Неизвестно Источник) на java.lang.runtime.exec (Unknown Source) в java.lang.runtime.exec (Неизвестно Source)

и это то, что печатается в ошибке -> "ошибка === доступ запрещен (java.io.FilePermission «ВСЕ ФАЙЛЫ» выполнить) «

Я даже t Ried изменить разрешение безопасности файла путем изменения файла java.policy (Here), но она по-прежнему дает тот же error.I добавил эти строки -

гранта {разрешения java.io.FilePermission «C : \ Documents и Settings \ User \ Desktop \ ABCD.exe ", " выполнить "; };

меня также попытался поместить его в/войны/WEB-INF, но в vain.Some поиск в интернете привел меня к тому, что Google App Engine может быть причиной для этого. Может кто-нибудь мне помочь?
p.s. Я видел аналогичное сообщение (Here), в котором упоминается, что на стороне сервера должно быть возможно что-то подобное.

ответ

1

Ваша проблема не в GWT, а в среде разработки движка приложения. Google App Engine Environment разрабатывается с учетом масштабируемости, поэтому приложение полностью абстрагируется от всего, от серверного оборудования до операционной системы.

Вкратце, что вы пытаетесь достичь на GAE не достижимо.

Если этот вопрос в любом случае связан с this, и если ваша цель - быстрый и грязный прототип GWT без намерения развернуть на appspot.com, тогда вы можете попробовать простой проект GWT без GAE. Команда Runtime.exec должна нормально выполняться на причале без каких-либо настроек (при условии, что вы создаете проект веб-приложения только с GWT и без поддержки GAE).

Если вы хотите, чтобы ваша цель была запущена в App Engine, тогда вы полностью направляетесь в неправильном направлении. То, чего вы пытаетесь достичь, невозможно.

3

Это не имеет никакого отношения к GWT. Ваш сервер - это сервер разработчика Google App Engine, и вы не можете запускать исполняемый файл в Google App Engine.

процитировать Google App Engine java overview page

Виртуальная машина Java работает в защищенной «песочнице» среды, чтобы изолировать приложения для обслуживания и безопасности. Песочница гарантирует, что приложения могут выполнять только действия, которые не мешают производительности и масштабируемости других приложений. Например, приложение не может создавать потоки, записывать данные в локальную файловую систему или создавать произвольные сетевые подключения. Приложение также не может использовать JNI или другой собственный код. JVM может выполнять любой байт-код Java, который работает в пределах ограничений на песочницу.

+0

Итак, есть ли какая-то работа для этого? Я почти близок к завершению моего проекта, если эта штука работает. – Manish

+0

@Manish: Исполняемые файлы не допускаются движком Google App по правилам. Это не технический недостаток, а осознанный выбор Google. Один из вариантов заключается в том, чтобы закодировать функциональность вашего исполняемого файла в вашем приложении Java. В принципе, все, что работает на стороне сервера на GAE, должно быть вашим кодом. – MAK

+0

@Manish: это не будет работать в этом формате. Вы просто не можете выполнять файлы '.exe' в Google App Engine. –

0

Вы понимаете, что Google запускает Linux повсюду? Кроме того, что именно вы не можете сделать в Java или Python, что вам нужно родное приложение Windows?

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