我为我的应用程序制作了jar文件。我的应用程序类之一使用BC jar的BouncyCastleProvider类。
我在应用程序jar所在的同一父文件夹中创建了一个文件夹“lib”。
我已将我的机器CLASSPATH更改为指向此新的lib文件夹。但是当我运行我的应用程序时,它给了我classnotfound异常。
但是,如果我将这个BC jar文件复制到我的jre / lib / ext,那么一切正常。
有人可以告诉我从lib目录访问BC jar文件需要做什么吗?
先谢谢, Jenish
答案 0 :(得分:0)
您的JAR文件必须将其MANIFEST.MF文件设置为声明JAR的类路径。#
从下面的Sun Tutorial中提取,在你的情况下你只需要让Class-Path指针指向你的lib目录,大概是
Class-Path: lib/BouncyCastle.jar
我们想在MyUtils.jar中加载类 进入类路径以供使用 MyJar.jar。这两个JAR文件都在 同一目录。
我们首先创建一个名为的文本文件 Manifest.txt具有以下内容 内容:
Class-Path: MyUtils.jar Warning : The text file must end with a new line or carriage return.
不会解析最后一行 如果它不以新的结尾,那就适当 线路或回车。
然后我们创建一个名为的JAR文件 MyJar.jar输入以下内容 命令:
jar cfm MyJar.jar Manifest.txt MyPackage/*.class
这会创建一个带有的JAR文件 表现出以下内容:
Manifest-Version: 1.0 Class-Path: MyUtils.jar Created-By: 1.6.0 (Sun Microsystems Inc.)
MyUtils.jar中的类现在是 当你加载到类路径中 运行MyJar.jar。