关于Java引用jar是否支持通配符

Java引用jar执行命令:

java -cp .:mysql-connector-java-5.1.24.jar:jdom-1.1.jar JavaCpTest

说明:

-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;” 分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。

关于jar是否支持通配符,网上答案很多,但有些人说支持,有些人说不支持,本人亲测结果:不支持,测试代码(使用的2个jar自行下载后放在类路径下):

public class JavaCpTest {

public static void main(String[] args) {

try {

Class<?> clazz=Class.forName("com.mysql.jdbc.Driver");

System.out.println(clazz);

Class<?> clazz2=Class.forName("org.jdom.adapters.AbstractDOMAdapter");

System.out.println(clazz2);

} catch (Exception e) {

e.printStackTrace();

}

}

}

执行:java -cp .:mysql-connector-java-5.1.24.jar:jdom-1.1.jar JavaCpTest

class com.mysql.jdbc.Driver

class org.jdom.adapters.AbstractDOMAdapter

执行:java -cp .:*.jar JavaCpTest

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

at java.lang.ClassLoader.loadClass(ClassLoader.java:425)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:190)

at JavaCpTest.main(JavaCpTest.java:4)

所以,jar包引用不支持通配符

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 10:14:03

关于Java引用jar是否支持通配符的相关文章

关于Java -cp引用jar是否支持通配符

其实是支持的: JDK6支持java -cp后面跟通配符'*',试了一下发现还是需要注意: 错误方式(Wrong way): java  -cp /data/apps/lib/*.jar com.chinacache.Main 或者 java  -cp /data/apps/ilb/ com.chinacache.Main 正确方式(right way): java -cp /data/apps/ilb/* com.chinacache.Main 低版本JDK(小于JDK6) java -cp

Windows/Linux下引用jar包,并用javac/java编译运行

Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, java源文件放在D:/test/src目录下,名字为t2.java. 编译: javac -cp d:/test/t1.jar d:/test/src/t2.java 运行: java -cp d:/test/t1.jar;d:/test/src t2 注意,分号后面没有空格,否则报错. 需要注意的是,如果

Java泛型解析(02):通配符限定

Java泛型解析(02):通配符限定 考虑一个这样的场景,计算数组中的最大元素. [code01] public class ArrayUtil { public static <T> T max(T[] array) { if (array == null || 0 == array.length) { return null ;} T max = array[0]; for (int i = 1; i < array.length; i++) { if (max.compareTo(

Java对Jar文件的操作[转]

原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html 一些文件路径补充知识: URI uri = new URI("file:/D:/workspace-home/JavaDemo/conf/"); File dirFile = new File(uri);  String dirPath = System.getProperty("user.dir") + "\\c

C#调用java的jar文件的方法(转)

一.将已经编译后的java中Class文件进行打包: Eclipse或myeclipse进行Export选择jar即可.或者使用命令 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . 其中test.jar为要生成的jar包:com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件: cmd->到java class文件目录下->jar  cvf    要生成的jar包名称.jar    java类文件

Android Studio开发入门-引用jar及so文件

最近初学安卓开发,因为以前从未用过JAVA,连基本的语法都要从头开始,所以不太顺利.在尝试使用百度语音识别引擎时遇到了如何引用jar及so文件的问题.在GOOGLE加多次尝试之后,找到了一个比较简单的方法,特介绍如下.一.引用jar文件    1.将jar文件复制.粘贴到app的libs目录中:    2.右键点击jar文件,并点击弹出菜单中的“Add As Library”,将jar文件作为类库添加到项目中:    3.选择指定的类库.    注:如果不执行2.3步,jar文件将不起作用,并且

Java常用jar包用途

Java常用jar包用途: USAGE INDEX JAR NAME USAGE 1 ASM asm-2.2.3.jar ASM字节码库 2 ASM asm-commons-2.2.3.jar ASM字节码库 3 ASM asm-util-2.2.3.jar Java字节码操纵和分析框架 4 COMMONS commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期管理的常用方法. 5 COMMONS commons-beanuti

java自定义jar包读取Excel(包含2003和2007)数据,并举例说明

用java自定义jar包读取excel数据支持excel2007和excel2003 在http://download.csdn.net/detail/u010792467/8079355下载所需要的包 如果需要excel2003和excel2007文件可以去 http://download.csdn.net/detail/u010792467/8072009下载 在http://download.csdn.net/detail/u010792467/8079345下载工程 自定义jar包运用举

有关打包成可执行jar包后引用jar包中配置文件问题

一 问题由来 有时候我们做一些项目时,需要将一些配置信息写入配置文件中,以供调用.比如说这样: 如果我们需要在Demo.java中读取config.txt这个文件中的配置信息,在这种工程目录下是可以使用File来读取的,但是打包成jar后,使用File将不能读取到config.txt了,除非将这个配置信息放在jar包的外面. 假如说我们用File来读取文件: BufferedReader reader = new BufferedReader(new FileReader(new File("r