«Не удалось найти основной класс» в приложении Java Salesforce - PullRequest
1 голос
/ 27 марта 2012

Я создавал приложение в Eclipse, которое извлекает данные из Salesforce и использует импортированный CSV-файл, обновляет и вставляет записи. Он хорошо работает в Eclipse, и я рад, что он готов к развертыванию, но я не могу заставить приложение работать, если я пытаюсь запустить его из cmd или дважды щелкнуть Jar. Я получаю эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: uploader/jar
Caused by: java.lang.ClassNotFoundException: uploader.jar
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: uploader.jar.  Program will exit.

Я был во всем Google и пробовал каждое решение там, но не могу найти, почему оно не будет работать. Вот шаги, которые я использую, чтобы построить банку и запустить ее, пожалуйста, если кто-нибудь может показать мне, где я иду не так, я был бы рад! Я не программист Java ...

Проект называется Uploader как пакет, кстати

  1. Щелкните правой кнопкой мыши по проекту и выберите «Экспорт». Выберите «Jar file» и Далее.
  2. Выберите мой проект в качестве ресурса и убедитесь, что .classpath и .project файлы выбраны. Выберите Экспорт сгенерированных файлов классов и ресурсы, чтобы сжать содержимое файла JAR, и выберите укажите местоположение файла Jar и нажмите «Далее».
  3. Выберите Экспорт файлов классов с ошибками компиляции и предупреждениями. Выберите Сохранить описание этого JAR-файла в рабочей области и укажите местоположение как /uploader/jardesc.jardesc. Нажмите Далее.
  4. Выберите для создания файла манифеста, сохраните манифест в рабочая область и используйте сохраненный манифест в сгенерированном JAR файл описания.
  5. Укажите Основной класс в правильное место, нажав Обзор и выбрав единственный вариант, который мне дан, который является загрузчиком. затем нажмите Готово.

Если я сейчас открою файл манифеста, я вижу следующее:

Manifest-Version: 1.0
Main-Class: uploader.Main

Так что мне кажется правильным.

Однако, если я открою командную строку, перейдите в каталог cd, содержащий файл jar, и скажите java uploader.jar, вот тогда я и получу сообщение об ошибке выше.

Может кто-нибудь увидеть что-то, что выглядит неправильно? Я не могу пройти через это!

Если я запускаю с java -jar uploader.jar, я получаю эту ошибку вместо:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sforce/ws/ConnectionException
Caused by: java.lang.ClassNotFoundException: com.sforce.ws.ConnectionException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: uploader.Main. Program will exit.

Возможно, это поможет определить проблему?

* EDIT *

Я отредактировал файл manifest.mf для этого, но все еще получаю ошибку:

Manifest-Version: 1.0
Main-Class: uploader.Main
Class-Path: lib/enterprise.jar lib/wsc-22.jar

1 Ответ

2 голосов
/ 27 марта 2012

Похоже, проблема в отсутствующей настройке пути к классам, то есть в определении классов и библиотек, необходимых для добавления.В вашем случае кажется, что по крайней мере какой-то jar salesforce должен быть добавлен в classpath.

Либо поместите classpath в файл манифеста, либо добавьте его в командной строке: java -cp <classpath here> -jar uploader.jar

...