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.
Я обошел эту проблему, упаковав класс в банку примерно так: