Это почти наверняка проблема с classpath. Попробуйте открыть JAR, который вы экспортировали (через winzip, или переименуйте в .zip и используйте windows) и либо изучите структуру папок jarred, чтобы определить, существует ли «javax / mail / internet /» и содержится ли в нем файл InternetAddress.class. Или откройте файл MANIFEST.MF, расположенный в JAR-файле, чтобы определить, что он содержит запись пути к классу, а файлы, указанные в манифесте, существуют в местах, указанных в манифесте.
Edit:
Проверьте свой путь к классу среды выполнения, распечатав его из системного свойства в JVM.
System.out.println(System.getProperty("java.class.path"));
Я думаю, вы обнаружите, что он пропал, извините, что заставил вас пройти дополнительную работу по ручной проверке, но иногда это показательно.
Обычно файлы jar не содержатся внутри jar. Существует два распространенных способа экспорта исполняемого файла:
- Jar-файлы ваших классов и включает манифест, который указывает путь к классам, где JVM может найти другие библиотеки, относящиеся к вашей собственной.
- Jar файлы вашего класса вместе с содержимым других jar в один jar. Скорее всего, это то, что вам нужно, и это можно сделать с помощью мастера eclipse «export ...> Runnable JAR File». Обязательно используйте «Runnable JAR File» и выберите правильные конфигурации запуска.
Возможно, вы найдете этот ТАК вопрос актуальным:
Classpath, включая JAR в JAR