【发布时间】:2012-01-01 04:56:46
【问题描述】:
我公开我的上下文:
我有两个 Java 程序在唯一的 Weblogic Server 上运行:程序 A 和程序 B。 这些是由两个 ksh 启动的:
programA.ksh 和 programB.ksh
两者都需要 C.jar,但版本不同(但具有完全相同的包和类):
- 程序A需要C-1.0.jar
- 程序 B 需要 C-2.0.jar
我确切地说这两个程序共享相同的 weblogic 类路径。
所以,我的类路径按顺序包含:
.....
C-1.0.jar
C-2.0.jar
.....
我怎样才能让每个程序都找到它的好库?
例如,在我的实际配置中,程序 B 将始终使用 C-1.0.jar 而不是 C-2.0.jar,因为类路径上的优先级位置。
【问题讨论】:
-
您的术语有问题。进程不会“在 JVM 上运行” JVM 是一个(单个)进程。你说的是线程吗?
-
是的,你是对的,实际上它是两个封装在 shell 脚本中的 java 启动器。我用更正重新编辑帖子
-
你的问题还不是很清楚。如果您启动 java 两次(一次用于 A,一次用于 B),则 A 和 B 不会在同一个 VM 上运行。每个程序都有自己的虚拟机。是你在做什么吗?
-
我刚刚更正了我的问题
-
目前还不清楚。你有一台或两台 weblogic 服务器在运行吗? A 和 B 是什么类型的程序? Web 应用程序部署为战争文件?耳朵?企业应用程序的 jar 不应该在服务器的类路径中。他们应该在应用程序的战争或耳朵中。如果这些 jar 被部署为应用的一部分,则应用服务器能够使用冲突的 jar 部署两个应用。
标签: java dependencies classpath classloader