Eclipse, AppEngine: java.lang.RuntimeException: не удается получить компилятор System 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)

Imgur

Imgur

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

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

WOW!!! Я занимался этой проблемой как 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 в фасетках/пути сборки и компилятора.

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

Ответ 4

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

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

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