昨天我想了一个问题,下面是细节:
我有3个JAR文件,a.jar,b.jar,c.jar。这两个jars文件都有一个名为com.test.Test的类,并且在该类中定义了sayHello()。
我创建了一个web应用程序,我引用了a.jar、b.jar、c.jar。在主要方法中,我涉及sayHello();.at,这一次,将加载哪个com.test.Test?
结果是a.jar。
有人告诉我原因吗??提前谢谢!
发布于 2012-09-25 20:54:18
这就是java 语言规范所说的。它加载类首先在类路径中发生的任何内容,并忽略其他类。
发布于 2012-09-25 21:11:35
发布于 2012-09-25 20:54:28
无论哪个Jar文件在您的类路径中放在第一位,都将被使用。可以将CLASSPATH环境变量修改为Jar文件的路径。
假设您修改它如下:-
set CLASSPATH = %CLASSPATH%;.;a.jar;b.jar
然后使用a.jar ..。
您也可以通过以下方式修改它:
set CLASSPATH = %CLASSPATH%;.;b.jar;a.jar
在这种情况下,将使用b.jar。这些命令是从Command Line中运行的。
**注意:-如果您正在使用任何IDE,则它们不使用。您需要为正在使用的IDE设置不同的类路径。
https://stackoverflow.com/questions/12590884
复制相似问题