我正在努力创建自己的系统 Java 包之一的实现,但是在尝试使用该包时遇到了一些问题,即错误的类被拾取。
例如,假设我的包是:abcDoStuff并且现有的 Java 包具有完全相同的名称abcDoStuff。
在测试应用程序中使用以下代码,我可以看出系统类仍在使用(位于 /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar)而不是我自己的:
ClassLoader loader = test.class.getClassLoader();
System.out.println(loader.getResource("a.b.c.DoStuff.class");
我的包已经编译成一个 jar 文件(package.jar),我有:
- 在我的测试文件中导入了类(import abcDoStuff;)
- 将 package.jar 添加到我的类路径中(同时使用“export CLASSPATH ...”和使用“java -classpath ...”)
一定有什么我忽略了?关于如何取走我的包裹而不是系统包裹的任何想法?
谢谢,
克里斯