CLASSPATH设置
本主题介绍Geode进程如何设置其CLASSPATH。
为了简化CLASSPATH环境设置,Geode已将Geode进程所需的所有应用程序库组织到* -dependencies.jar
文件中。 所有依赖JAR文件位于path_to_product / lib
目录中。 当使用gfsh
启动服务器或定位器进程时,所需的应用程序JAR文件将自动加载到进程的CLASSPATH中。
Note: 要在您的应用程序中嵌入Geode,请将“path_to_product / lib / geode-dependencies.jar”添加到您的CLASSPATH中。
下表列出了与Geode进程关联的依赖JAR文件::
Geode 进程 | 关联的JAR文件 |
---|---|
gfsh | gfsh-dependencies.jar |
server 和 locator | geode-dependencies.jar
Note:
将此库用于托管缓存数据的所有独立或嵌入式Geode进程(包括Java客户端)。 |
在gfsh管理进程中修改CLASSPATH
有两个选项用于更新在gfsh命令行上启动的Geode Server和Locator进程的CLASSPATH。
选项 1: 在进程启动时指定--classpath
参数。 例如,要修改Locator的CLASSPATH:
gfsh> start locator --name=locator1 --classpath=/path/to/applications/classes.jar
并修改Server的CLASSPATH:
gfsh> start server --name=server1 --classpath=/path/to/applications/classes.jar
作为--classpath
选项的参数提供的应用程序类是前缀到Server或Locator的CLASSPATH,从第二个位置开始。 出于安全考虑,CLASSPATH中的第一个条目保留给核心Geode jar文件。
选项2:在操作系统环境中定义CLASSPATH环境变量。 然后,在进程启动时指定--include-system-classpath
参数。 例如:
gfsh> start locator --name=locator1 --include-system-classpath=true
Server进程也可以这样做:
gfsh> start server --name=server1 --include-system-classpath=true
此选项在启动时将系统CLASSPATH环境变量的内容附加到Locator或Server的CLASSPATH。 指定此选项但没有设置, 将默认设置为true。
设置应用程序和独立Java进程的CLASSPATH
如果以编程方式(独立或嵌入式)启动Geode进程,我们建议您使用java -classpath
或java -cp
命令行选项在程序执行时指定CLASSPATH。 此方法作为将CLASSPATH设置为环境变量的优先方法,因为它允许您为每个应用程序单独设置值而不影响其他应用程序,而且其他应用程序无法修改本进程的内容。
例如,要使用LocatorLauncher API启动Geode Locator进程,可以在命令行上执行以下命令:
prompt# java -cp "path_to_product/lib/geode-dependencies.jar"
org.apache.geode.distributed.LocatorLauncher start locator1
<locator-launcher-options>
使用ServerLauncher API启动Geode Server进程:
prompt# java -cp "path_to_product/lib/geode-dependencies.jar:/path/to/your/applications/classes.jar"
org.apache.geode.distributed.ServerLauncher start server1
<server-launcher-options>
请注意,除了与进程关联的“* -dependencies.jar”文件之外,还必须在Geode进程中指定要访问的任何自定义应用程序JAR。 例如,如果您计划在Region上使用定制的压缩器,则应指定包含要使用的压缩应用程序的应用程序JAR。
使用嵌入式缓存启动应用程序:
java -cp "path_to_product/lib/geode-dependencies.jar:/path/to/your/applications/classes.jar"
com.mycompany.package.ApplicationWithEmbeddedCache
注意:
使用自己的应用程序更新服务器进程的CLASSPATH的另一种方法是使用gfsh deploy
命令。 部署应用程序JAR文件将自动更新所有部署成员的CLASSPATH。 有关详细信息,请参阅[部署Apache应用程序JAR到Apache Geode成员](../配置/ cluster_config / deploying_application_jars.html#concept_4436C021FB934EC4A330D27BD026602C)。