Как запустить файл jar в сценарии оболочки в терминале Linux?

Я сделал Java-проект. Это .... сообщение журнала вывода и сообщение system.out.println. Просто. Итак, я превратился в файл jar (имя - LinuxSample.jar). и я написал сценарий оболочки для запуска этого файла jar. Посмотрите на этот сценарий оболочки. (Speakee - это имя пакета, а PrintLinux - имя основного класса)

#!bin/bash
CLASSPATH=/home/tangooc/TANGOOC/test/libs/*
CLASSPATH = "${CLASSPATH};/home/tangooc/TANGOOC/test/linux/LinuxSample.jar"
java speakee.PrintLinux

этот файл jar и этот сценарий оболочки работают в Window. но Linux не работал. Я не знаю почему

это сообщение об ошибке.

Could not find or load main class
Could not find or load main class -> есть ли у класса основной метод? это public static? класс скомпилирован?
Arun 14.03.2018 15:20

Разве обычный способ выполнения java-архивов jar не использовать переключатель -jar в командной строке? Так что просто что-то вроде java -jar LinuxSample.jar ...

arkascha 14.03.2018 15:24

@Arun Да, это основной метод, и он уже скомпилирован

미친이 15.03.2018 01:06

@arkascha Я добавил предложение (java -jar LinuxSample.jar) в сценарий оболочки. но это не сработало, и сообщение об ошибке ---> (Ошибка: невозможно получить доступ к jarfile LinuxSample.jar) Я думаю, что этой банке нужна библиотека. но я уже добавил библиотеку CLASSPATH ... гул .. ,,,,

미친이 15.03.2018 01:12

Похоже, у вас проблема с путем, поэтому вы указали только имя файла, но ваш текущий рабочий каталог находится в другой папке. Попробуйте использовать полный абсолютный путь или измените рабочий каталог в своем скрипте.

arkascha 15.03.2018 01:14

Укажите полный путь к основному классу

Arun 15.03.2018 02:10

@Arun /home/tangooc/TANGOOC/test/linux/LinuxSample.jar (основной метод PrintLinux в пакете speakee)

미친이 15.03.2018 03:59

попробуйте это: java -jar <ваш полный путь> /yourJar.jar

Arun 15.03.2018 14:29

Команда java -jar игнорирует следующие команды. в любом случае я сделал это !! Я написал решение, рекомендую

미친이 16.03.2018 03:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
3 556
2

Ответы 2

Привет. Лучший способ запустить Java-приложение - сначала установить переменные CLASS_PATH и PATH. Если ваш текущий файл jar зависит от внешних файлов jar, вы столкнетесь с множеством проблем. Лучше установите переменную пути, как показано ниже, и запустите приложение: -

#!/usr/bin/ksh
export PATH=/usr/java/bin:$PATH
# =/usr/java/bin is your java bin folder
#set environment variable CP with all the jar libraries
CP=/home/flussi/xmlEncoder/encoder.jar 
CP=${CP}:/other/jar/somejar.jar

java -Xmx256M -classpath "$CP" "com.myproj.Example"

Спасибо за ваш комментарий, но он по-прежнему не работает и выводит сообщение об ошибке ---> Не удалось найти или загрузить основной класс speakee.PrintLinux

미친이 15.03.2018 01:44

я сделал это Я изменил сценарий оболочки.

CLASSPATH=/home/tangooc/TANGOOC/test/client/LinuxSample.jar
LIB_TOTAL=/home/tangooc/TANGOOC/test/libs/*
echo ${LIB_TOTAL}
echo ${CLASSPATH}
java -cp ${LIB_TOTAL}:${CLASSPATH} speakee.PrintLinux

также есть другой способ.

CLASSPATH=/home/tangooc/TANGOOC/test/client/LinuxSample.jar
CLASSPATH=${CLASSPATH}:/home/tangooc/TANGOOC/test/libs/*
echo ${CLASSPATH}
java -cp ${CLASSPATH} speakee.PrintLinux

Если кто-то вроде меня изменит сценарий оболочки. и проверьте строку, строку, строку ...

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