将罐子到您的程序
我在d简单Demo.java文件:\ 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) ;
}
}
我准备在d一个manifest.txt文件:用以下文字\ jarConcepts:
主类:演示
类路径:C:\ Program Files文件\的MySQL \ MySQL的工具5.0 \的java \ lib中\ MySQL的连接器的Java-5.0.4-bin.jar
的情况下,我创建使用
罐子-cvfm Demo.jar添加manifest.txt的.class
按照相同的目录中的jar文件的输出:
加入清单 添加:Demo.class(in = 743)(out = 505)(泄气32%)
但是,当我执行生成的jar文件时,它显示一条错误消息,
找不到主类。程序将会退出。
我不明白为什么会这样,怎么,当我用下面的清单的代码创建jar文件:
主类:演示
我得到一个完美的可执行文件Demo.jar,唯一的问题是,它不是加载从类的路径] 类路径,当我试图在清单中添加路径,它不工作...... PLZ帮助... ...
确保Main-Class和Class-Path条目之间的清单文件中没有换行符。您还应该确保在Class-Path条目后面有一个换行符。
另外,我会建议Demo是一个公共类,如果它被用作主类。
您不应该依赖清单类路径,因为清单文件有一些漂亮的strange rules,包括换行符。
相反,使用命令行参数构建一个类路径和使用主类参数java -cp Demo.jar:mysql-connector.jar Demo
这是一个长长的名单为不同的目的.... 将u plz告诉我唯一的文本,我必须写在manifest.txt 使我的框架可见与标题确定.... – mogli 2009-06-06 22:08:55
正如我所说,我只能建议建立类路径与'java -cp',而不是Manifest。 – 2009-06-06 22:18:02
的空间被解释为分隔符调用您的程序和各项应相对:
http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Main%20Attributes
类别路径:
此属性的值指定 相对URL的 扩展名或库,这 应用程序或扩展需要。网址 是由一个或多个空格分开。
那么为什么jar文件执行时,当我只使用主类的标签,而不是使用两个 主类,类路径标签...... – mogli 2009-06-06 22:05:11