Eclipse, AppEngine: java.lang.RuntimeException: не удается получить системный компилятор Java. Пожалуйста, используйте JDK, а не JRE

Я получаю эту ошибку при попытке выполнить развертывание в Google AppEngine. У меня ДЕЙСТВИТЕЛЬНО выбран JDK!

------------ Deploying frontend ------------

Preparing to deploy:
    Created staging directory at: 'C:\Users\Chloe\AppData\Local\Temp\appcfg8759974391667459604.tmp'
    Scanning for jsp files.
    Compiling jsp files.
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.

Debugging information may be found in C:\Users\Chloe\AppData\Local\Temp\appengine-deploy6465203991005024943.log

C:\Users\Chloe\AppData\Local\Temp\appengine-deploy6465203991005024943.log:

Unable to update:
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.
    at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:814)
    at com.google.appengine.tools.admin.Application.compileJsps(Application.java:801)
    at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:615)
    at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:418)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55)
    at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
    at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:155)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Имгур

Имгур

Я очистил проект, переустановил Eclipse до последней версии, переустановил все плагины и т. д. Я также отредактировал Program Files\Java\eclipse-kepler-4.3\eclipse.ini с помощью

-vm
C:\Program Files\Java\jdk1.7.0_17\bin\javaw.exe

вверху и перед -vmargs.


person Chloe    schedule 03.10.2013    source источник
comment
Вместо проекта/фасетов проверьте путь проекта/сборки для JDK.   -  person pinoyyid    schedule 04.10.2013
comment
Перейдите в командную строку и введите путь, проверьте, является ли это JDK или JRE.   -  person Yasa    schedule 04.10.2013
comment
Это уже упоминалось в вопросе. Что бы это ни было, больше этого не происходит, и я не помню, как это разрешилось само собой.   -  person Chloe    schedule 30.10.2013
comment
stackoverflow.com/questions/13938995/   -  person OhadR    schedule 31.03.2014


Ответы (4)


Перейдите в папку Eclipse, где у вас установлено eclipse (скажем, c:\eclipse). Вы найдете файл eclipse.ini, который eclipse использует при запуске. Добавьте следующую строку -vm C:\Program Files\Java\jdk1.7.0_25\bin\javaw.exe

измените указанный выше путь Java на ваше местоположение JDK. Он должен иметь возможность использовать этот JDK и будет компилироваться и развертываться в механизме приложения.

person Suvoraj Biswas    schedule 30.10.2013
comment
Это уже упоминалось в вопросе. Что бы это ни было, больше этого не происходит, и я не помню, как это разрешилось само собой. - person Chloe; 30.10.2013
comment
У меня была такая же проблема, как у вас. Однако, когда я указал правильный путь JDK в eclipse.ini и перезапустил свое затмение, а также мой компьютер, он начал работать. Я даже пробовал это на другом ноутбуке, и я заметил то же самое. Иногда, если вы добавляете JDK в eclipse «Установленная JRE», он не хочет распознавать, пока вы не настроите это в eclipse.ini и не перезапустите eclipse. Так что это ответ, если кто-то все еще борется с той же проблемой. - person Suvoraj Biswas; 31.10.2013
comment
у меня сработало :) спасибо (в установленном jre был jdk, а не файл .ini) - person Srinath Ganesh; 21.02.2014
comment
stackoverflow.com/questions/13938995/ - person OhadR; 31.03.2014

В моем случае я пытался File>Restart Eclipse, но не работал, когда вышел и снова запустил. Это работает

person Horizon    schedule 19.08.2014
comment
Правильно... все сделано правильно, Eclipse нужно закрыть и запустить заново, а не перезапуск. Тогда это должно работать. - person Syed Priom; 12.11.2015

ВАУ!!! Я решал эту проблему часа 3-4. Как раз собирался написать комментарий, говоря, что это к черту. Но затем я изменил eclipse.ini на:

-vm
A:/Programming/Java/jdk1.8.0_73/bin/javaw.exe

вместо:

-vm
A:/Programming/Java/jdk1.7.0_79/bin/javaw.exe

И УСПЕХА!

Почему это могло сработать? Не уверен. Мне нужна была 1.7, а не 1.8... но 1.7 продолжала указывать на JRE вместо JDK... И, что удивительно, 1.8 этого не делал + все еще работал с текущей сборкой. Также стоит упомянуть, чтобы указать 1.7 в фасетах/пути сборки и компиляторе..

введите здесь описание изображения

person Jonathan Laliberte    schedule 22.07.2017

Я вижу, что OP использует подключаемый модуль Google для Eclipse (GPE), который устарел, но когда-то это также было проблемой в Cloud Tools для Eclipse (CT4E), поэтому я оставлю соответствующий ответ для CT4E здесь для справки.

Действительно, ошибка Cloud Tools for Eclipse заключалась в том, что он не использовал JDK, настроенный для проекта, а вместо этого использовал JDK, используемый для запуска Eclipse для подготовки. Ошибка исправлена: https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/2195.

Итак, другие ответы на этот вопрос, чтобы отредактировать eclipse.ini, чтобы изменить JDK для запуска Eclipse, являются временным обходным путем, который больше не нужен. Просто обновитесь до последней версии CT4E и установите JDK для проекта. Вы можете указать любой JDK/JRE, необходимый в eclipse.ini для запуска Eclipse.

person Chanseok Oh    schedule 01.11.2017