Не удается найти класс & ldquo; main class & rdquo; установка собственной привязки

Я начал работать с Ubuntu Core и Snaps несколько дней назад. Мне удалось закончить очень простой учебник по созданию моей собственной привязки, и все сработало отлично.

Теперь пришло время идти дальше, поэтому для больших целей я попытался создать свою собственную привязку Hello World. Моя идея состоит в том, чтобы закодировать демон Java для печати «hello world» справа и назад, используя библиотеку StringUtils только для необходимости добавления некоторых зависимостей maven и загрузки кода из частного репозитория GitLab.

java-код работал нормально на моем компьютере, поэтому я пошел на snapcraft.yaml:

name: java-maven-hello version: 0 summary: A java example using maven dependecies description: this is not much more than an example confinement: devmode grade: devel apps: daemon: command: java -cp basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest restart-condition: always daemon: forking parts: daemon: plugin: maven source: http://gitlab.ramadorp.es/ramador/snap-maven-test.git

Время запуска оснастки и никаких проблем до сих пор, но когда я пытаюсь установить поставляемую оснастку, я получаю:

error: cannot perform the following tasks: - Start snap "java-maven-hello" (unset) services ([start snap.java-maven-hello.daemon.service] failed with exit status 1: Job for snap.java-maven-hello.daemon.service failed because the control process exited with error code.

«Статус systemctl snap.java-maven-hello.daemon.service» дает мне:

● snap.java-maven-hello.daemon.service Loaded: not-found (Reason: No such file or directory) Active: failed (Result: timeout) since lun 2017-04-24 10:23:54 CEST; 4min 34s ago abr 24 10:22:24 Bec systemd[1]: Starting Service for snap application java-maven-hello.daemon... abr 24 10:22:24 Bec /usr/bin/snap[8670]: cmd.go:111: DEBUG: restarting into "/snap/core/current/usr/bin/snap" abr 24 10:22:24 Bec snap[8670]: Error: Could not find or load main class es.ramadorp.odm.snapcraft.test.daemon.Daemontest abr 24 10:22:24 Bec systemd[1]: snap.java-maven-hello.daemon.service: Control process exited, code=exited status=1 abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Start operation timed out. Terminating. abr 24 10:23:54 Bec systemd[1]: Failed to start snap.java-maven-hello.daemon.service. abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Unit entered failed state. abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Failed with result 'timeout'.

Итак, я понимаю, что установка не находит .jar для выполнения ?, но я пошел глубоко в папки, созданные snapcraft, и "basic-project-0.0.1-SNAPSHOT.jar" есть, в /home/bec_1/wkf/snapmaven/parts/daemon/build/target. Мои знания не так много, чтобы понять, правильное расположение .jar или почему установка не находит «основной класс». Есть идеи? Кстати, мой файл pom.xml выглядит так:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.boundedinfinity</groupId> <artifactId>basic-project</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.0</version> </dependency> </dependencies> </project>
3
задан 26 April 2017 в 14:55

4 ответа

Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -

    command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
2
ответ дан 22 May 2018 в 23:12
  • 1
    Благодаря! теперь я могу установить оснастку, но она пока не работает. Я добавляю $ SNAP, как вы сказали, но я когда пытаюсь выполнить команду snap, которую я получаю " command not found & quot ;. Я все еще указываю неправильно? Я также попытался добавить маршрут, например: - java -cp $ SNAP / home / bec_1 / wkf / snapmaven / prime / jar / basic-project-0.0.1-SNAPSHOT.jar и другие варианты, на всякий случай (проб и ошибок ), и ничего. – Poor-Man 28 April 2017 в 14:18

Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -

command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
2
ответ дан 18 July 2018 в 14:14

Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -

command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
2
ответ дан 24 July 2018 в 20:21

Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -

command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
2
ответ дан 31 July 2018 в 13:34

Другие вопросы по тегам:

Похожие вопросы: