Я думаю, что это связано с несоответствием между вашей целевой средой исполнения Java на Heroku и вашим локально скомпилированным кодом, сгенерированным из компилятора Maven, которую ты пытаешься подтолкнуть к Героку.
Согласно документации Heroku :
В настоящее время Heroku использует OpenJDK 8 для запуска приложения по умолчанию . OpenJDK версии 9 и 7 также доступны.
Другие поддерживаемые версии по умолчанию:
- Java 7 - 1.7.0_181
- Java 8 - 1.8.0_191
- Java 9 - 9.0.4
- Java 10 - 10.0.2
- Java 11 - 11
Таким образом, вы должны убедиться, что в вашем файле pom.xml ваш компилятор maven компилирует ваш код JAVA в соответствующий пакет JAVA, который вы нацеливаете на Heroku . Например, ниже мы нацелены на среду выполнения Java 7:
pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Затем вам нужно создать файл system.properties
в вашем проекте, если вы нацелены на среду выполнения, отличную от среды выполнения Jok DK 1.8 , которую использует Heroku по умолчанию. Вы можете сделать это, указав желаемую среду выполнения Java, например:
system.properties
java.runtime.version=11
TLDR:
- Убедитесь, что вы используете соответствующий JAVA JDK
- Убедитесь, что ваша целевая среда из компилятора Maven совпадает с целевой средой выполнения Heroku JAVA .
- Если вы не используете JAVA 8 по умолчанию JDK среда выполнения создайте файл system.properties в своем проекте, указав другую поддерживаемую среду выполнения JAVA , как указано в пакете сборки JAVA Heroku для JAVA документация.
Надеюсь, это поможет