У меня есть простой файл Demo.java в D: \ jarConcepts каталог:
import javax.swing.* ;
class Demo{
public static void main(String args[]){
JFrame frame = new JFrame("") ;
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) ;
Class c = null ;
try{
c = Class.forName("com.mysql.jdbc.Driver") ;
//com.mysql.jdbc.Driver class is in a jar file
//whose class path is set in the environment variable(explicitly done by me)
//when i am executing Demo.class using java command, it displays frame with OK title
//but if i execute this by creating a jar, it enables to load the
//com.mysql.jdbc.Driver class,
//thus displaying frame with Sorry title
frame.setTitle("OK") ;
}
catch(ClassNotFoundException cnfe){
frame.setTitle("Sorry") ;
}
frame.setVisible(true) ;
}
}
Я подготовил файл manifest.txt в D: \ jarConcepts со следующим текстом:
Main-Class: Демо
Путь к классу: C: \ Program Files \ MySQL \ MySQL Tools for 5.0 \ java \ lib \ mysql-connector-java-5.0.4-bin.jar
когда я создаю файл jar из того же каталога, используя
jar -cvfm Demo.jar manifest.txt .class
следующий вывод:
добавлен манифест
добавление: Demo.class (in = 743) (out = 505) (дефлированный 32%)
Но, когда я выполняю сгенерированный файл jar, он показывает сообщение об ошибке,
Не удалось найти основной класс. Программа выйдет.
Я не понимаю, почему это происходит, потому что, когда я создаю файл jar со следующим кодом манифеста:
Main-Class: Демо
я получаю отлично исполняемый файл Demo.jar, единственная проблема в том, что он не загружает класс Driver из]
путь к классу, и когда я пытаюсь добавить путь в манифест, он не работает ......
Пожалуйста, помогите .......