情况为:在cmd中,运行java -jar *.jar,出现classnotfound异常,jar中包含lib下面jar下面的class找不到,后来在MANIFEST.MF中添加了Class-Path的配置,但是还是不行?
之一,将组件的Jar文件拷贝到公共JRE目录下的lib\ext下。比如,我的JDK1.5装在C:
\Program Files\Java下,之下的j2re1.5.0是公共JRE,就将B.jar拷贝到: C:\Program
Files\Java\j2re1.5.0\lib\ext 之下,这样在名令行下运行java -jar A.jar就可以。
但这样,我们需要在JRE留下一大坨东西,看起来似乎不太好看。
之二,看Java文档说,manifest文件中还有个属性叫做Class-Path,在A.jar的manifest中加上一句:
Class-Path: B.jar
重新打包。B.jar和A.jar在一个路径下,这样相对路径不变的话,B.jar会被ClassLoader照顾到。运行 java -jar
A.jar
果然通过!这似乎还不错,我们可以把我们的软件做好,所有的功能分散在各个Jar文件中,但不能动任何一个Jar文件,相对路径一变,还是不行。而且,每
一个Jar文件之间要算好相对路径,每一个都要配置Class-Path,晕也晕死。
一个未完成的想法,看了看Eclipse的文件结构,有一个单独的launcher来启动整个Eclipse。launcher就是一个Jar文件,其中
的manifest并没有写Class-Path,它也能够调用plugins目录下的诸多组件来完成Eclipse的启动,运作。它是如何做的
呢?Launcher中似乎重写了Classloader,可惜弄不到它的源代码,秘密也许就在classloader中。
分享到:
相关推荐
在使用"mysql-connector-java-5.1.49.jar"时,开发者通常需要将其添加到项目的类路径中,以便Java虚拟机在运行时能找到并加载这个驱动。在现代的构建工具如Maven或Gradle中,这可以通过依赖管理来实现。在没有构建...
首先,你需要将`mysql-connector-java-5.1.47-bin.jar`添加到你的项目类路径(ClassPath)中,这样Java运行时环境才能找到并加载这个驱动。这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中配置...
这可以通过多种方式实现,如在IDE(如Eclipse或IntelliJ IDEA)中设置,或者在命令行运行Java程序时使用`-cp`或`-classpath`参数指定。一旦驱动被正确引入,就可以通过以下步骤建立数据库连接: 1. 导入必要的JDBC...
这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中设置库依赖,或者在命令行运行Java程序时使用`-cp`或`-classpath`选项指定JAR的位置。一旦驱动被正确加载,就可以通过`Class.forName(...
在Java开发环境中,`mysql-connector-java-5.1.47.jar` 文件是一个必不可少的组件,因为它是连接到MySQL服务器的桥梁。JDBC驱动程序分为四种类型:Type 1、Type 2、Type 3 和 Type 4,而MySQL Connector/J 属于Type ...
"mysql-connector-java-5.1.38.jar"是这个驱动程序的一个具体版本,版本号为5.1.38。 在Java编程环境中,当你需要访问MySQL数据库时,你需要在项目中包含此jar文件。JDBC驱动程序的主要功能是提供标准的Java接口,...
这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中设置构建路径,或者在命令行运行Java程序时使用-cp或-classpath参数指定。一旦驱动被正确引入,就可以通过以下步骤建立数据库连接: 1. 加载驱动...
2. **命令行**:如果你在命令行下运行 Java 应用,可以使用 `-cp` 或 `-classpath` 参数指定 JAR 文件的位置。 3. **系统 ClassPath**:可以将 JAR 文件复制到系统的 `JAVA_HOME/lib` 目录下,或者在 `JAVA_HOME/bin...
在使用mysql-connector-java-5.1.40-bin.jar时,通常需要将其添加到项目的类路径(classpath)中,这样Java虚拟机在运行时才能找到并加载这个驱动。在IDE如Eclipse或IntelliJ IDEA中,可以直接将jar文件添加到项目的...
另一种更为灵活的方法是在执行Java命令时动态指定JAR包位置,即使用`-cp`或`-classpath`参数。这允许在不修改系统环境变量的情况下临时指定类路径。例如,假设我们有一个名为`Test`的主类,它依赖于`mysqlJdbc.jar`...
这个压缩包包含两个文件:`mysql-connector-java-5.0.8-bin.txt`和`mysql-connector-java-5.0.8-bin.jar`。在这里,我们将深入探讨这些文件的作用以及它们在Java MySQL连接中的重要性。 首先,`mysql-connector-...
总的来说,`mysql-connector-java-5.1.45-bin.jar`是Java程序员连接MySQL数据库不可或缺的工具,它简化了数据库操作,使得在Java环境中实现数据存储和检索变得更加便捷。在进行数据库相关的Java开发时,熟悉并掌握其...
对于传统的Java应用,可以将JAR文件放入`lib`目录,然后在运行时通过`-cp`或`CLASSPATH`环境变量指定。 接下来,你需要编写Java代码来建立数据库连接。以下是一个简单的示例: ```java import java.sql.Connection...
假设你需要添加`D:\Program Files\Java\jdk1.6.0_16\lib\dt.jar`和`D:\Program Files\Java\jdk1.6.0_16\lib\tools.jar`这两个JAR文件到`classpath`中,你可以按照以下步骤进行设置: 1. **打开系统环境变量设置界面...
2. **命令行编译**: 使用`javac`编译时,通过`-cp`或`-classpath`参数指定包含此jar的目录。 3. **MANIFEST.MF**: 如果你正在创建一个可执行的JAR文件,可以在`MANIFEST.MF`文件中指定`Class-Path`属性来包含此驱动...
对于命令行运行的Java应用,可以在启动时使用`-cp`或`-classpath`参数指定JAR的位置。 使用MySQL Connector/J时,需要遵循JDBC的一般流程:创建数据库连接、准备SQL语句、执行查询或更新、处理结果集,最后关闭连接...
在Java编程环境中,有时我们需要将多个类打包成一个可执行的JAR(Java Archive)文件,以便于分发和执行。这个过程涉及到编译Java源代码、创建类路径(classpath)、构建MANIFEST.MF文件以及最终打包成JAR。下面我们...
这可以通过多种方式实现,如在IDE(如Eclipse、IntelliJ IDEA)中设置项目构建路径,或者在命令行执行Java程序时使用`-cp`或`-classpath`选项。一旦驱动被正确配置,就可以通过以下步骤建立数据库连接: 1. 加载...
这可以通过多种方式实现,如在IDE(如Eclipse、IntelliJ IDEA)中设置项目构建路径,或者在运行Java程序时通过`-cp`或`-classpath`参数指定。 使用JDBC驱动进行数据库连接的基本步骤如下: 1. 加载驱动:通过`...
3. **命令行**:如果你使用的是命令行编译和运行Java程序,可以使用`-cp`或`-classpath`选项指定JAR文件的位置。 `jar包可直接使用.txt` 文件可能是提供的一些使用指南或者注意事项,通常包括如何添加JAR到项目、...