Как мога да реша изпълнението на .jar?

Добро утро, имам проблем, когато се опитвам да изпълня моя .jar. Моята програма прочете някакъв файл от отдалечен сървър от JSch.

C:\Documents and Settings\julie\Bureau>java -jar myFile.jar 

Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jsch/SftpE xception         
at java.lang.Class.getDeclaredMethods0(Native Method)         
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)         
at java.lang.Class.getMethod0(Unknown Source)         
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)     
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.SftpException    
at java.net.URLClassLoader$1.run(Unknown Source)     
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)         
... 6 more

person user3386486    schedule 06.03.2014    source източник


Отговори (1)


Имате липсващи класове в този пакет: com.jcraft.jsch.

Ако този пакет идва от библиотека от трета част, тогава се уверете, че бурканът съдържа този пакет в папка lib на същото ниво на вашия изпълним буркан.

[Редактиране]

Първо: за да добавите буркани от трета част в eclipse:

  1. Щракнете с десния бутон върху вашия проект
  2. Изберете свойства -> Java Build Path -> Докоснете библиотеки.
  3. Изберете Добавяне на външни JAR файлове
  4. Отидете до вашите буркани и натиснете OK

Второ: за генериране на изпълним Jar файл:

  1. Щракнете с десния бутон върху вашия проект
  2. Изберете Export -> Java -> Runnable JAR File.

Това трябва да работи добре.

person Salah    schedule 06.03.2014
comment
Добавих папка lib, която съдържа моя .jar на същото ниво на src, експортирах отново .jar. Когато извличам .jar, виждам папка lib вътре, но имам същия проблем, моля за някаква идея? Помогни ми - person user3386486; 06.03.2014
comment
Не е нужно да добавяте нищо, просто се уверете, че когато експортирате jar файла, той експортира и третата част на библиотеките jar. - person Salah; 06.03.2014
comment
Моля, Салах, можеш ли да ми дадеш повече подробности. Информацията (потребител и парола) на моя сървър е във файл.ini и използвам jsch-0.1.42.jar и jcsv-1.4.0.jar. Моят .jar gi не е разрешен - person user3386486; 06.03.2014
comment
Сигурни ли сте, че сте добавили тези буркани към вашия проект. - person Salah; 07.03.2014
comment
Ще ви кажа стъпките, чрез които вашият проект трябва да работи добре. вижте актуализирания ми отговор. - person Salah; 08.03.2014
comment
сега имам проблем със сигурността. В моя проект има файл .ini, който съдържа информация (парола и потребител) за връзката към моя сървър. Когато извличам .jar, файлът показва парола и потребителска връзка. Не искам човекът, който ще стартира .jar, да вижда тази информация. Как мога да го реша? - person user3386486; 10.03.2014
comment
Това може да ви помогне Как да получите достъп до файл в jar файл - person Salah; 10.03.2014
comment
И моля, не забравяйте да го приемете като отговор, ако е решил проблема ви. - person Salah; 10.03.2014
comment
Моля, искам да откажа достъп до файл в jar файл на потребител на jar. - person user3386486; 10.03.2014
comment
защото ако потребителят има достъп, той може да има парола на сървъра. - person user3386486; 10.03.2014
comment
моят файл .ini е в моя проект/src - person user3386486; 10.03.2014
comment
След това трябва да проверите дали текущият потребител е влязъл, ако той е един от тези, които имат достъп, тогава изпълнете този код, който осъществява достъп до файла, в противен случай не го изпълнявайте. - person Salah; 10.03.2014
comment
Благодаря ви за отговора на първия въпрос. - person user3386486; 13.03.2014
comment
Няма за какво и моля, не забравяйте да го приемете като отговор, ако ви е помогнало. - person Salah; 14.03.2014