【发布时间】:2017-11-23 12:41:00
【问题描述】:
所以,这不是关于在 eclipse 中运行 java 代码,而是 在 eclipse 内部(在 eclipse 之外)从 maven 执行 java 命令工作得很好)。
具体来说:
我们有一个在 maven 中执行的 .cmd 文件,它的相关部分:
java -classpath (the classpath) com.bea.wls.ejbgen.EJBGen (and some other stuff)
当从命令行运行时(mvn clean install),我们会得到这个输出:
EJBGen WebLogic Server 12.1.3.0.0 Wed May 21 18:53:34 PDT 2014 1604337
Creating my\package\ejb\Local.java
Creating my\package\ejb\WebserviceLocal.java
Creating my\package\ejb\ServiceLocal.java
Creating my\package\ejb\LocalHome.java
Creating my\package\ejb\WebserviceLocalHome.java
Creating my\package\ejb\ServiceLocalHome.java
一切顺利,
但是在 eclipse 中执行时:
EJBGen isn't supported by JDK version higher than 1.7
现在,控制台/m2e 运行如何选择使用哪个 java 二进制文件?
- jdk/jre 8 和 jdk 7 都安装在我的系统上。
- 我使用 jdk 8 作为 eclipse 的运行时(在 eclipse.ini 中)(它是霓虹灯,如果我尝试使用 7,它将不会运行)并且我的“已安装 jre”设置为 (jdk) 7(请参阅第一个截图如下)
- JAVA_HOME 变量设置为 7(如果我运行 java -version 它输出 7)
- 我多次重启 eclipse
- m2e运行配置的执行环境也设置为jdk7(第二个截图)
非常感谢任何帮助/指针!!!
S.
编辑:
(确实)exec-maven-plugin 插件的配置:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>runEJBGen</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>runEJBGen.cmd</executable>
<!-- optional -->
<workingDirectory>${project.basedir}\src\main\java</workingDirectory>
</configuration>
</plugin>
我们使用这种机制(而不是 java 变体)是因为其他 - 项目特定 - 原因......
编辑2: pom.xml 的编译器选项
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
【问题讨论】:
-
您确定 Eclipse 没有可以配置 JRE8 的 Maven 特定配置吗?只是大声思考。
-
默认情况下,Eclipse 使用配置为用于 maven 构建运行的 JDK...如果您从 Eclipse 启动它...如何定义执行环境?您是否检查过从普通命令行运行 Maven 构建?
-
您使用exec-maven-plugin 来启动EJBGen 吗?
-
确实,添加了配置
-
我有 Java 8。如果我不设置属性
<maven.compiler.target>1.8</maven.compiler.target>和<maven.compiler.source>1.8</maven.compiler.source>,Maven 项目默认为 JRE 1.5。这可能是你的问题吗?
标签: java eclipse maven java-8 java-7