Принудительная версия Java в упаковке Debian - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь собрать пакет Debian для Java-приложения.Я создал все необходимые файлы.Я думаю, что единственная проблема, которую я имею, состоит в том, чтобы вызвать java-версию при использовании jh_build в debian / rules

Действительно, здесь мой текущий файл:

#!/usr/bin/make -f

%:
    dh $@ --with javahelper --sourcedirectory=sources

override_jh_build:
    jh_build test.jar sources

У меня есть следующий вывод:

jh_build test.jar sources
warning: [options] bootstrap class path not set in conjunction with -source 7
sources/org/test/preferences/WindowHandler.java:29: error: lambda expressions are not supported in -source 7
        CoalescedEventUpdater updater = new CoalescedEventUpdater(400, () -> updatePref(frame, prefs));
                                                                          ^
  (use -source 8 or higher to enable lambda expressions)
sources/org/test/preferences/CoalescedEventUpdater.java:10: error: lambda expressions are not supported in -source 7
        timer = new Timer(delay, e -> {
                                   ^
  (use -source 8 or higher to enable lambda expressions)
2 errors
1 warning
jh_build: find sources -name '*.java' -and -type f -print0 | xargs -s 512000 -0 /usr/lib/jvm/default-java/bin/javac -g -cp :debian/_jh_build.test -d debian/_jh_build.test -encoding ISO8859-1 -source 1.7 -target 1.7  returned exit code 123

Так что мой вопрос очень прост, где мне нужно написать эту опцию -source 8?Я пробовал в качестве опции jh_build без успеха.

РЕДАКТИРОВАТЬ Я пробовал эту строку, как предложено в комментариях:

jh_build --javacopts="-source 1.8 -target 1.8" test.jar sources

Вывод почти такой же, за исключением первого предложения!!

warning: [options] bootstrap class path not set in conjunction with -source 8
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 warning
sources/org/test/preferences/WindowHandler.java:29: error: lambda expressions are not supported in -source 7
        CoalescedEventUpdater updater = new CoalescedEventUpdater(400, () -> updatePref(frame, prefs));
                                                                          ^
  (use -source 8 or higher to enable lambda expressions)
sources/org/test/preferences/CoalescedEventUpdater.java:10: error: lambda expressions are not supported in -source 7
        timer = new Timer(delay, e -> {
                                   ^
  (use -source 8 or higher to enable lambda expressions)
2 errors

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Решение состоит в том, чтобы определить версию для javac и javadoc !!

jh_build --javacopts="-source 1.8 -target 1.8" --javadoc-opts="-source 1.8" spview.jar sources
0 голосов
/ 27 сентября 2019

Версия по умолчанию - Java 7, как вы можете видеть в последней строке вашего журнала -source 1.7.

Вам необходимо передать нужную версию в jh_build следующим образом:

override_jh_build:
jh_build --javacopts="-source 1.8 -target 1.8" test.jar sources

ПРИМЕЧАНИЕ: Может показаться очевидным, но вам нужен JDK 8 или выше.

...