下面我描述更多关于我的问题。我知道Stackoverflow中还有其他线程,但我的问题尚未解决,因此我测试了大多数建议。
描述我使用Spring REST接口制作程序(见下面的代码),我在使用Maven编译代码时遇到了问题(见问题部分)。使用IDE Eclipse编译代码没有问题。
在Windows:mvn clean compile的命令行中使用Maven编译代码时出现问题:我收到错误消息:错误:目标版本无效:1.17。Maven和Java拥有最新版本和env。Variable JAVA_HOME设置为正确的JAVA安装路径:C:
C:
C:
我尝试了几个不同版本的Java和Maven,但有相同的错误。我在POM中减少了源代码/目标,当版本在11-17之间时,我得到了同样的错误,并且较低的版本给出了souce代码编译错误,因为可能版本太低了。
这是我的pom。xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>tobbe</groupId>
<artifactId>stocks-rest</artifactId>
<packaging>jar</packaging>
<version>1.0.1-SNAPSHOT</version>
<properties>
<java.version>17</java.version>
<maven.compiler.source>1.17</maven.compiler.source>
<maven.compiler.target>1.17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>tobbe</groupId>
<artifactId>Stocks_Backend</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的代码是:
/**
* Version 1.0.2
*/
package Rest;
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.lang.instrument.IllegalClassFormatException;
import java.net.MalformedURLException;
import java.util.List;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import Enums.Market;
import Enums.REA_Stock_State;
import Enums.Stock_State;
import REA.REAMain;
import REA.REAStock;
import Stocks.Logger;
import mExceptions.ElementSizeException;
@SpringBootApplication
@RestController
public class StocksRestApi
{
private Logger iLogger = null;
public StocksRestApi()
{
iLogger = new Logger();
}
public static void main(String[] args)
{
SpringApplication.run(StocksRestApi.class, args);
}
@GetMapping(value="/logdata")
public String logdata()
{
List<String> dataLogList = iLogger.getLogData();
String dataLog = "";
if(dataLogList.size() == 0)
{
dataLog = "Run http://localhost:8080/rea first";
}
for(String row: dataLogList)
{
dataLog += row;
}
return dataLog;
}
}
问题为什么当我用Maven编译代码时,目标版本1.17无效?
因为没有Java1.17版本。他们不再把1
放在版本号前面。这令人困惑。因此,他们停止使用Java9(另请参见JEP223)。使用
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
使用
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:
我走过以下opendaylight指南:https://docs.opendaylight.org/en/stable-oxygen/developer-guide/developing-apps-on-the-opendaylight-controller.html# 编译过程中出现错误: Odl测试提供者。爪哇: 编译器信息: 目标:maven编译器插件:3.7.0:compile(默认编译)
问题内容: 我正在尝试使用Ant脚本和Java编译JasperReports模板。我收到此错误: 模板中没有什么复杂的东西,但是我仍然无法编译。 问题答案: 您必须将模板中的值设置为Java。有两种方法可以执行此操作: 如果使用的是 iReport,请 在 “报告检查器”中 选择根对象(与报告名称相同的根对象)。然后在“ 属性” 窗口中,从“ 语言” 下拉列表中选择“ Java ” 。 __ 如果
我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消
问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件