动态设置类路径

时间:2012-01-12 10:48:58

标签: java classpath

我需要开发一个可以支持任何版本服务器的客户端。每次使用客户端连接新服务器时,都会在客户端上存储相应的服务器信息,并且需要将类pat h设置为当前服务器特定的类路径位置。基于服务器版本类路径需要设置。我正面临动态设置此类路径。我总是得到ClassNotFound Exception。你能否建议我如何做到这一点。

2 个答案:

答案 0 :(得分:0)

无法在运行时动态设置Classpath。你可以在这里做两件事:熟悉OSGi或编写自己的类加载器。 对于这个特殊的例子,自己的类加载器会更容易。你在服务器特定的类路径中保留了什么?课程,资源,什么?一些细节可能有所帮助。

答案 1 :(得分:0)

我不知道你到底想要实现什么,但假设你的客户端机器中有所有需要的库,而你只是想根据从服务器收到的特定参数在运行时更改类路径,然后我会去ClassWorlds

我会尝试使用ClassWorlds的配置文件定义一组类领域,并且将实现客户端的主类using the ClassWorld argument in the main method。然后,从服务器接收的参数将是任何这些领域的名称。因此,在阅读了realm参数之后,您只需要switch the current thread's classloader到ClassWorlds为特定领域创建的那个。

相关问题