`
zqjshiyingxiong
  • 浏览: 441484 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

运行一个可执行的Jar时,Classpath的设置无效问题,java的-cp和-jar参数不能

    博客分类:
  • JAVA
阅读更多

情况为:在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

    在使用"mysql-connector-java-5.1.49.jar"时,开发者通常需要将其添加到项目的类路径中,以便Java虚拟机在运行时能找到并加载这个驱动。在现代的构建工具如Maven或Gradle中,这可以通过依赖管理来实现。在没有构建...

    mysql-connector-java-5.1.47-bin.jar

    首先,你需要将`mysql-connector-java-5.1.47-bin.jar`添加到你的项目类路径(ClassPath)中,这样Java运行时环境才能找到并加载这个驱动。这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中配置...

    mysql-connector-java-5.1.40-bin.jar连接器

    在使用mysql-connector-java-5.1.40-bin.jar时,通常需要将其添加到项目的类路径(classpath)中,这样Java虚拟机在运行时才能找到并加载这个驱动。在IDE如Eclipse或IntelliJ IDEA中,可以直接将jar文件添加到项目的...

    mysql-connector-java-5.1.7 jar包

    这可以通过多种方式实现,如在IDE(如Eclipse或IntelliJ IDEA)中设置,或者在命令行运行Java程序时使用`-cp`或`-classpath`参数指定。一旦驱动被正确引入,就可以通过以下步骤建立数据库连接: 1. 导入必要的JDBC...

    mysql-connector-java-5.1.7-bin.jar

    这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中设置库依赖,或者在命令行运行Java程序时使用`-cp`或`-classpath`选项指定JAR的位置。一旦驱动被正确加载,就可以通过`Class.forName(...

    mysql-connector-java-5.1.47.jar

    在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

    "mysql-connector-java-5.1.38.jar"是这个驱动程序的一个具体版本,版本号为5.1.38。 在Java编程环境中,当你需要访问MySQL数据库时,你需要在项目中包含此jar文件。JDBC驱动程序的主要功能是提供标准的Java接口,...

    mysql-connector-java-8.0.25.jar

    这可以通过多种方式实现,例如在IDE(如Eclipse或IntelliJ IDEA)中设置构建路径,或者在命令行运行Java程序时使用-cp或-classpath参数指定。一旦驱动被正确引入,就可以通过以下步骤建立数据库连接: 1. 加载驱动...

    mysql-connector-java-8.0.17.jar

    2. **命令行**:如果你在命令行下运行 Java 应用,可以使用 `-cp` 或 `-classpath` 参数指定 JAR 文件的位置。 3. **系统 ClassPath**:可以将 JAR 文件复制到系统的 `JAVA_HOME/lib` 目录下,或者在 `JAVA_HOME/bin...

    关于执行java命令引入外部jar包方法

    另一种更为灵活的方法是在执行Java命令时动态指定JAR包位置,即使用`-cp`或`-classpath`参数。这允许在不修改系统环境变量的情况下临时指定类路径。例如,假设我们有一个名为`Test`的主类,它依赖于`mysqlJdbc.jar`...

    mysql-connector-java-5.1.6jar包

    标题中的"mysql-connector-java-5.1.6.jar包"正是这个连接器的一个特定版本,即5.1.6版。这个版本在2008年发布,属于较早的版本,但至今仍可能在某些旧项目中使用。 首先,让我们详细了解一下MySQL Connector/J的...

    java mysql jar包mysql-connector-java-5.0.8-bin.zip

    这个压缩包包含两个文件:`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

    总的来说,`mysql-connector-java-5.1.45-bin.jar`是Java程序员连接MySQL数据库不可或缺的工具,它简化了数据库操作,使得在Java环境中实现数据存储和检索变得更加便捷。在进行数据库相关的Java开发时,熟悉并掌握其...

    mysql-connector-java-5.1.8.jar

    这可以通过在IDE的构建路径设置中包含此JAR文件,或者在运行命令行时使用`-cp`或`-classpath`参数指定。 2. **连接数据库**:通过`java.sql.DriverManager`类的`getConnection()`方法建立连接,需要提供数据库URL、...

    java中path和classpath的设置

    假设你需要添加`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. **打开系统环境变量设置界面...

    mysql-connector-java-8.0.13.jar mysql数据库驱动下载

    2. **命令行编译**: 使用`javac`编译时,通过`-cp`或`-classpath`参数指定包含此jar的目录。 3. **MANIFEST.MF**: 如果你正在创建一个可执行的JAR文件,可以在`MANIFEST.MF`文件中指定`Class-Path`属性来包含此驱动...

    mysql-connetion-java-5.1.36.jar

    对于传统的Java应用,可以将JAR文件放入`lib`目录,然后在运行时通过`-cp`或`CLASSPATH`环境变量指定。 接下来,你需要编写Java代码来建立数据库连接。以下是一个简单的示例: ```java import java.sql.Connection...

    mysql-connector-java-8.0.18.jar.7z

    对于命令行运行的Java应用,可以在启动时使用`-cp`或`-classpath`参数指定JAR的位置。 使用MySQL Connector/J时,需要遵循JDBC的一般流程:创建数据库连接、准备SQL语句、执行查询或更新、处理结果集,最后关闭连接...

    mysql-connector-java-5.1.35 MySQL的jdbc驱动jar

    这可以通过多种方式实现,如在IDE(如Eclipse、IntelliJ IDEA)中设置项目构建路径,或者在运行Java程序时通过`-cp`或`-classpath`参数指定。 使用JDBC驱动进行数据库连接的基本步骤如下: 1. 加载驱动:通过`...

    编译运行java带jar包

    在Java编程环境中,有时我们需要将多个类打包成一个可执行的JAR(Java Archive)文件,以便于分发和执行。这个过程涉及到编译Java源代码、创建类路径(classpath)、构建MANIFEST.MF文件以及最终打包成JAR。下面我们...

Global site tag (gtag.js) - Google Analytics