java类路径定制_设置Java类路径的注意事项
现在有一个JAVA项目,项目结构如图1所示。类Main依赖Log4J和Mysql-Connector包,“Base.java”文件只是最简单的类定义,“Main.java”文件内容如下:
package com.dslztx.java;
import org.apache.log4j.Logger;
public class Main extends Base {
private static final Logger logger = Logger.getLogger(Main.class);
public static void main(String[] args) {
logger.info("Hello World");
// depend on mysql
System.out.println(com.mysql.jdbc.Driver.class.getCanonicalName());
}
}
图1
一、设置Java类路径的注意事项
1.1、将JAR包加入类路径
欲将JAR包加入类路径,必须将完整的JAR包路径加入类路径,对于以上项目来说,正确的编译命令和运行命令分别为:javac -classpath "./src:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" src/com/dslztx/java/Main.java和java -classpath "./src:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" com.dslztx.java.Main。
如果“-classpath”选项的值设定为“./src:./lib”,那么编译会报出如图2所示错误,运行会报出如图3所示错误。
图2
图3
1.2、将非JAR包加入类路径
欲将非JAR包(比如配置文件,单独的类文件等)加入类路径,只需将父目录加入类路径即可,加入完整的路径反而导致错误。接下来进行举例说明。
1.2.1、例子1
现在预先编译“Base.java”文件,将得到的“Base.class”文件放在“./com/dslztx/java”目录下(当前目录是“Classpath”目录),此时目录结构如图4所示。正确的编译命令为:javac -classpath ".:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" src/com/dslztx/java/Main.java。如果将编译命令改成:javac -classpath "./com/dslztx/java/Base.class:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" src/com/dslztx/java/Main.java,则会出现如图5所示错误。
图4
图5
1.2.2、例子2
使用javac -classpath "./src:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" src/com/dslztx/java/Main.java编译命令得到编译结果,根据这个结果正确的运行命令应为:java -classpath "./src:./lib:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" com.dslztx.java.Main,Log4J正常运行需要加载类路径下的“log4j.properties”文件,因此在运行命令的类路径中加了“./lib”。如果将运行命令改成java -classpath "./src:./lib/log4j.properties:./lib/mysql-connector-java-5.1.17-bin.jar:./lib/log4j-1.2.13.jar" com.dslztx.java.Main,则会出现如图6所示结果(并不算错误)。
图6
二、小技巧
可以通过“*”通配符将一个目录下的所有JAR包加入类路径,比如要将“lib”目录下的所有JAR包加入类路径,可以通过“lib/*”的形式。千万注意,绝对不能使用“lib/*.jar”的形式,后者是错误的。另外需要注意的是“lib/*”表示的是将“lib”目录下的所有JAR包加入类路径,并没有将“lib”目录下的非JAR包加入类路径。[1]
java类路径定制_设置Java类路径的注意事项相关推荐
- java ee开发环境_设置Java EE 6开发环境
java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- C#类与对象_创建玩家类
C#:类与对象_创建玩家类,实现字段,方法,引用和简单游戏逻辑 //创建CF当中的玩家类Player,该类含有字段:名字,性别, 血量,武器. //武器背包当中匕首,步枪,机枪,狙击枪. 玩家类具有以 ...
- java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载
不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...
- java常用的分隔符_*文件操作类1(基本操作)分隔符的使用
Java IO学习原则:抽象类中定义的抽象方法会根据实例化其子类的不同,也会完成不同的功能. 使用File类来进行文件的操作. 如果要进行所有的文件以及文件内容的开发操作,那么应该使用java.io包 ...
- java中把路径定义到src下的_设置java路径路径
JDK环境变量配置 java设置classpath,path,java_home环境变量 Windows7安装JDK的环境变量设置Windows7 X64安装"jdk-6u26-window ...
- java有理数类的封装_【Java 教程(原创)】025.参数传值——有理数的类封装
马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 零度非安全 于 2017-4-7 11:09 编辑 点击图片穿越到 索引帖,听说有惊喜! ...
- 用java有理数类包含加减乘除_用java具体代码实现分数(即有理数)四则运算
用java具体代码实现分数(即有理数)四则运算 1,背景 Java老师布置了一个关于有理数运算的题目,因为参考书上有基本代码,所以自己主要是对书上代码做了一点优化,使其用户交互性更加友好以及代码封装性 ...
- java有理数类的封装_【Java笔记】有理数的类封装
分数是有理数(Rational),我们经常做分数的四则运算得到的是小数,如果我们运行分数的四则运算想要得到分数,要怎样做呢? 用类实现对有理数的封装可以做到. 有理数有两个重要的成员,即分子(nume ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
最新文章
- python虚拟环境
- cv2.putText
- Yii rabc角色权限管理文章推荐
- ubuntu11.04下配置中文输入法
- TSQLDBServerHttpApi使用工作线程池
- javac手动编译servlet
- React开发(235):document.body.clientHeight
- 一文了解阿里云CDN HTTP2.0
- jsp中el表达式创建一个list
- 浅谈.net事件机制
- 机器学习算法基础4-K-近邻算法、朴素贝叶斯算法、分类模型评估、模型的选择与调优
- kux格式 linux,怎么把1080P的kux视频转换成mp4呢
- Cocos游戏开发——004cc.Node坐标空间
- j2ee期末考试总结
- 高等几何——变换群与几何学8
- 苹果ppt_毫无惊喜的苹果新品发布会,用到的这4个PPT技巧却值得学习
- C++ pair的比较大小
- Android开发实战《智慧北京》——7.项目拓展
- 全球科大校友chatGPT论坛
- 双重检查锁(Double-Checked Locking)的缺陷
热门文章
- oracle数据数形转换db2,DB2数字类型转换成字符串类型,例:ORACLE与DB2
- 计算机应用基础实训教程视频,计算机应用基础与实训教程第7章.ppt
- c++ hashset的用法_C++ set crbegin() 使用方法及示例
- python怎样编写定时程序_如何用Python写一个每分每时每天的定时程序
- JAVA里的jsp网页背景_Java-带CSS的JSP不显示背景图像
- nyoj 605 Dice Tower
- 电脑常用音频剪辑软件_常用手机视频剪辑软件
- hdoj1160:FatMouse's Speed(dp+最长递减子序列思想+数组巧妙记录输出)
- 联想微型计算机改win76,装不了Win7?采用第六代酷睿处理器的电脑改装Win7的方法...
- 计算机组装与维护精品,国家精品课程——《计算机组装与维护》.pdf