Intellij idea Glassfish第3.1.2.2节在第11.1.4节中的意思是;PWC6345:调用javac时出错。需要完整的JDK(不仅仅是JRE)";

Intellij idea Glassfish第3.1.2.2节在第11.1.4节中的意思是;PWC6345:调用javac时出错。需要完整的JDK(不仅仅是JRE)";,intellij-idea,glassfish-3,Intellij Idea,Glassfish 3,我正在尝试让我们的Mavenized web应用程序在新安装的IDEA 11.1.4 Ultimate(Windows 7)和新解压的Glassfish 3.1.2.2下启动并运行。我已经在Eclipse中多次这样做了,但对这个想法并不熟悉 我可以很好地构建和部署它,但当我尝试访问包含JSP内容的页面时,我得到: PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required Glassf

我正在尝试让我们的Mavenized web应用程序在新安装的IDEA 11.1.4 Ultimate(Windows 7)和新解压的Glassfish 3.1.2.2下启动并运行。我已经在Eclipse中多次这样做了,但对这个想法并不熟悉

我可以很好地构建和部署它,但当我尝试访问包含JSP内容的页面时,我得到:

PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required
Glassfish应用程序服务器条目将javax.ejb.jar、javax.servlet-api.jar和javax.servlet.jsp-api.jar添加为库

我已将project SDK设置为指向完整的JDK,结果是:

(它似乎不包括带有javac的jar)

到目前为止,我找到的IntelliJ教程没有提到这个问题。我的猜测是,“请开始使用这个JDK”信息并没有传递给Glassfish,所以它只是获取系统JRE


我错过了什么配置步骤?我不想编辑配置文件-如果我知道如何告诉IntelliJ插件,我希望IntelliJ插件可以这样做。

JDK\u HOME\lib\tools.jar
文件添加到JDK配置类路径中

但是,您案例中的问题可能有所不同,因为Glassfish JDK并非取自IntelliJ IDEA设置,此问题可能有助于:


    • 下一个解决方案帮助了我

      资料来源:

    • 找到你的asenv.bat文件。C:\ProgramFiles\glassfish-4.0\glassfish\config\asenv.bat
    • 在文本编辑器中打开它,并找到类似“set AS_uu2;=blahblah”的字符串
    • 将此字符串添加到“set AS_JAVA=C:\Program Files\JAVA\jdk1.7.0_60”(在此处打印您自己的JDK路径)。如果字符串“set AS_JAVA=blahblah”已经存在,那么只需修复路径即可

    • 我收到了相同的通知,只是在管理端口->配置->服务器配置->JVM设置->Java主页中更改为“C:\Program Files\Java\jdk1.8.0_72”,它开始工作。

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

      重新启动glassfish 4服务器后,我遇到了相同的错误。当我试图访问已部署的应用程序时,它说要提到完整的JDK

    • 登录到Glassfish管理控制台。()
    • 转到配置---->服务器配置---->JVM设置
    • 使用正确的jdk主页设置java主页(例如:C:\ProgramFiles(x86)\java\jdk1.8.0\U 121)
    • 重新启动服务器

    • 这会很好用。

      这真的是官方认可的方式吗?是的,这是设计的。在构建IDEA本身时,这一步骤也是必需的,因为IDEA源代码使用的编译器API仅在tools.jar中可用。如果没有引入JDK jar,那么指定JDK的想法是什么?很抱歉,我不明白。在开发99%的Java应用程序时,不需要使用Java编译器API,只有在极少数特殊情况下才需要,比如在编译IDE本身时。您案例中的问题可能不同,因为应用程序服务器是使用自己的启动脚本启动的,并且可能使用的是完全不同的JDK位置,而不是从项目设置继承的。检查控制台以查看它用于JDK的路径。如果它使用相同的路径,它应该能够在不需要编辑IDE设置的情况下找到并加载tools.jar本身,否则这是服务器启动脚本中的一个错误。像使用JSP编译器运行应用程序服务器这样的罕见情况反过来需要javac?哦,好吧,至少我现在知道了。这是唯一对我有用的东西。我在asenv.conf中改为_JAVA,运气不好。Glassfish真是一堆废话。在通过
      asadmin start domain domain domain domain1重新配置域导致错误后,它对我有效