Java: не удалось найти или загрузить основной класс

Я разработал небольшую Java-программу под Windows и сейчас пытаюсь запустить ее на машине с Ubuntu.

run.sh:

/opt/atlassian/jira/jre/bin/java -classpath "commons-lang3-3.3.2.jar;opencsv-3.3.jar;.\TisowareExportConverter.class" info.aptis.plakon.TisowareExportConverter /home/tisoware/transfer/tisoware_presence_export.csv /home/tisoware/convert/$

Я скомпилировал файл.java под windows

Содержание каталога

tisoware@server037:~/convert$ ls -la
insgesamt 472

    drwxr-xr-x 2 root         root           4096 Apr 26 11:51 .
    drwxr-xr-x 7 tisoware     tisoware       4096 Apr 26 11:32 ..
    -rw-r--r-- 1 root         root         412739 Apr 18 15:46 commons-lang3-3.3.2.jar
    -rw-r--r-- 1 root         root            293 Apr 26 11:51 convert.sh
    -rw-r--r-- 1 root         root           1024 Apr 26 11:51 .convert.sh.swp
    -rw-r--r-- 1 root         root            108 Apr 26 10:47 doku.txt
    -rw-r--r-- 1 root         root          31217 Apr 18 15:46 opencsv-3.3.jar
    -rw-rw-r-- 1 root         tisoware          5 Apr 26 11:24 outfile.csv
    -rw-r--r-- 1 aptisSupport aptisSupport    200 Apr 19 14:19 tiso_user_mapping.csv
    -rw-r--r-- 1 root         root           4425 Apr 19 14:21 TisowareExportConverter.class

Java-класс

package info.aptis.plakon;

public class TisowareExportConverter {

    public static void main (String[] args) { /* stuff is done here */}
}

проблема

Все, что я получаю, это

tisoware@server037:~/convert$ bash convert.sh
Fehler: Hauptklasse info.aptis.plakon.TisowareExportConverter konnte nicht gefunden oder geladen werden

(Перевод: не удалось найти или загрузить основной класс info.aptis.plakon.TisowareExportConverter)

Что я делаю неправильно?

Под Windows программа работает так

run.bat

java -classpath libs\commons-lang3-3.3.2.jar;libs\opencsv-3.3.jar;out\production\tisowareExportConverter2 info.aptis.plakon.TisowareExportConverter tiso_infile.csv tiso_outfile.csv tiso_user_mapping.csv

Спасибо, интернет <3

1 ответ

Во время выполнения, когда JVM не находит файл.class с указанным именем, возникает ошибка времени выполнения с сообщением "Не удалось найти или загрузить основной класс". Причина, по которой это происходит, в основном из-за:

  • Неверное имя класса
  • Неверный путь к классам
  • Неправильный пакет

Не удалось найти основной класс, если в полностью определенном имени класса java есть опечатка или неправильный синтаксис, или он не существует в указанном пути к классам. Вы должны убедиться, что вы добавили расположение вашего файла.class в путь к классам. Итак, если он находится в текущей папке, добавьте. к вашему пути к классам. Обратите внимание, что разделителем пути к классам Windows является точка с запятой (. Если вы хотите выполнить метод main() в MainClass, вы должны использовать полное имя класса, включая имя пакета, в команде java.

Я обошел эту проблему, упаковав класс в банку примерно так:

https://stackoverflow.com/questions/2025607/how-to-create-a-jar-file-or-export-jar-on-intellij-like-eclipse-java-archive-e

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