org.apache.jasper.JasperException: PWC6345: 调用 javac 时出错。需要完整的 JDK(不仅仅是 JRE)

Posted

技术标签:

【中文标题】org.apache.jasper.JasperException: PWC6345: 调用 javac 时出错。需要完整的 JDK(不仅仅是 JRE)【英文标题】:org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required 【发布时间】:2013-07-07 12:17:47 【问题描述】:

在此处发布此问题之前:我抬头看了看

1)Glassfish 3.1.2.2 in IDEA 11.1.4: "PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required"

2) How do I specify the jdk for a glassfish domain?

3)http://alvinalexander.com/blog/post/java/fixing-glassfish-jdk-path-problem-solved

4) https://www.java.net//node/702274

5)"PWC6345: There is an error in invoking javac." error when using Jetty WTP plugin to deploy a JSP page on Jetty

我可以在 Eclipse 中打开 glassfish 管理窗口,但是当我尝试运行我的项目时,我收到了这个恼人的错误: “”

我查看了上面列出的帖子,但在我的情况下没有用...我已经设置了我的 java 环境..

但他们没有解决我的问题。我仍然收到标题中的错误,已经有一个问题发布在类似的问题上,但没有我需要的答案....

【问题讨论】:

【参考方案1】:

解决方法很简单,

您只需执行以下步骤: 先决条件: 确保 JAVA_HOME、JRE_HOME、Path 必须在环境变量(本地和系统变量)中设置并在 cmd 中验证相同

    在 Eclipse/STS/DeveloperStudio 中,转到 Windows -> 首选项 -> Java -> 已安装的 JRE 删除旧的 JRE_1.8.012 并添加新的 i,即:添加 -> 标准 VM ->JRE 主页:C:\Program Files\Java\jdk1.8.0_121(提供 JDK 路径而不是 JRE)-> JRE 名称: jdk1.8.0_121 -> 完成 然后选择,列出的 JDK -> 应用并关闭 转到服务器(Tomcat)-> 运行时环境->验证选定的运行时 JRE,它应该是 jdk1.8.0_121(在我的情况下) 重启Eclipse,重启服务器

【讨论】:

【参考方案2】:

尝试将 ./glassfish/config 中的可变 AS_JAVA 添加到 asenv.bat 或/和 asenv.conf

【讨论】:

请将其添加为评论而不是答案【参考方案3】:

我遇到了同样的问题,这是因为我忘记在环境变量中设置 JAVA_HOME 以指向正确的 Java 安装路径。

【讨论】:

【参考方案4】:

我遇到了同样的问题并解决了。我的 Eclipse 使用的是 jre 而不是 jdk。我只是更改了 jre。 转到 Window->Preferences->Java->Installed JRE's。 删除该条目并将路径添加到您的 jdk 的 bin 文件夹。 添加后不要忘记检查您的jdk,然后应用并关闭窗口。现在程序应该运行了。

【讨论】:

【参考方案5】:

我将此行添加到 eclipse 文件夹中的“eclipse.ini”文件中。

-vm

C:\Program Files\Java\jdk1.8.0_131\bin\javaw.exe

我也改变了eclipse中的JRE路径

windows -> 首选项 -> java -> 已安装的 JRE

并提供到 jdk 的路径

C:\Program Files\Java\jdk1.8.0_131

我的问题解决了。

谢谢

【讨论】:

【参考方案6】:

如果您像我一样尝试在独立容器中运行应用程序,而不是在 Eclipse 环境中。您需要通过管理控制台更改 glassfish 上的 JVM 常规设置,然后重新启动 glassfish

【讨论】:

【参考方案7】:

有这个问题,当我将相同的战争部署到远程 glassfish 服务器并且部署良好时,意识到问题实际上是我的 glassfish 实例而不是 eclipse。所以我去了 glassfish 文档并搜索了如何为您的域更改 jdk,这对我有用。

asadmin set "server.java-config.java-home=path-to-java-home"

【讨论】:

我输入了命令“server.java-config.java-home=C:\Program Files\Java\jdk1.8.0_231”就可以了,一定是jdk路径。【参考方案8】:

对于那些在这里找不到答案的人......

对我来说,当我在 Glassfish 上重新部署一个项目一段时间并且服务器遇到 PermGem 时,就会出现这个问题。此消息首先显示,有时甚至不显示。始终重新启动服务器会有所帮助。

【讨论】:

【参考方案9】:

这可能与 m2clipse 插件遇到的问题相同:您必须在启动 Eclipse 时告诉 eclipse 使用 JDK。仅在 Window>Preferences 上设置 JDK/JRE 无效。

例如添加这个参数:

C:\eclipse\eclipse.exe -vm C:\Java\jdk1.6.0_20\bin\javaw

或编辑 eclipse.ini 文件以添加 vm 参数。

有很多可能性。检查此链接以获得正确答案:m2eclipse: Eclipse is running in a JRE, but a JDK is required

【讨论】:

目前还没有让它运行,但是这个在其他方面真的很有帮助......非常感谢! 添加 -vm JavaJDK 路径时,我必须在 Windows 中使用正斜杠而不是反斜杠,这对我有用。【参考方案10】:

您需要使用 JDK 而不是 JRE 运行 Glassfish。我不完全确定设置 Java 环境是什么意思,但它不适用于这里。 Eclipse 正在运行您告诉它的 Glassfish 服务器,它使用了您告诉它使用的 Java 运行时。

【讨论】:

是的,在设置 glassfish 服务器时,我确保我的 JRE 设置为 JDK 目录(windows>preferences>java>installed JRE)....当我提到环境时,我提到了这个。 .. 甚至我确保服务器运行时环境设置为 JDK 而不是默认的 JRE ....但我仍然看到这个问题...

以上是关于org.apache.jasper.JasperException: PWC6345: 调用 javac 时出错。需要完整的 JDK(不仅仅是 JRE)的主要内容,如果未能解决你的问题,请参考以下文章