有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java动态设置类路径

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


共 (2) 个答案

  1. # 1 楼答案

    我不知道您到底想要实现什么,但是假设您的客户机中有所有需要的库,并且您只是试图在运行时根据从服务器接收到的特定参数更改类路径,那么我将转到ClassWorlds

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

  2. # 2 楼答案

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