Apache Geode进程类路径设置
此话题描述Apache Geode如何设置它们的类路径
为了简化类路径环境设置,geode已经将它所需的所有类库都打包到了*-dependencies.jar文件中。所有依赖的jar文件都在
path_to_product/lib
目录下,当用gfsh命令启动server或是locator进程时,
这些jar包会自动被加载到进程的类路径中。
注间:嵌入Geode到你的应用中时,将path_to_product/lib/geode-dependencies.jar加入你应用的类路径。
如下的表格列出了geode的相关进程以及它们所依赖的jar文件
geode进程 | 依赖的jar包 |
gfsh | gfsh-dependencies.jar |
server and locator | geode-dependencies.jar 注意:不管是独立的还是嵌入的geode进程包括java 客户端,都要使用到这个包。 |
有两个命令选项可以用来更新server和locator进程的类路径,在开使的命令行中使用
选项1: 在启动之前指定--classpath为启动参数
. 例如, 为locator修改类路私:
gfsh> start locator --name=locator1 --classpath=/path/to/applications/classes.jar
再修改server的类路径
gfsh> start server --name=server1 --classpath=/path/to/applications/classes.jar
应用自身的类文件在server和locator类路径中的参数中的第二个位置。因为安全原因,类路径的第一项为Geode的核心jar文件。
选项2: 在操作系统中定义类路径的环境变量. 然后开始进程启动之前指定 --include-system-classpath
例如:
gfsh> start locator --name=locator1 --include-system-classpath=true
你也可以为server做同样的事
gfsh> start server --name=server1 --include-system-classpath=true
此选项在geode启动之前追加系统类路径环境变量的内容并生效到了locator 或 server的类路径。如果没有一个值指定此选项,则将其设置为true。
为应用程序和独立的java进程设置类路径
如果你开始以编程的方式启动geode(独立或是嵌入的),我们推荐你在程序执行的时候,用java -classpath
或是java -cp
命令行选项来设置类路径。这种方式设置类路径为环境变量是因为它允许你独立的为每个应用设置值而不会影响其它应用,也不会被其它应用修改掉你设置的值。
例如,用locator启动器API来启动locator进程,你可以执行以下命令行。
prompt# java -cp "path_to_product/lib/geode-dependencies.jar"
com.gemstone.gemfire.distributed.LocatorLauncher start locator1
<locator-launcher-options>
用server启动器API来启动server进程
prompt# java -cp "path_to_product/lib/geode-dependencies.jar:/path/to/your/applications/classes.jar"
com.gemstone.gemfire.distributed.ServerLauncher start server1
<server-launcher-options>
注意到除了与进程有关的*-dependencies.jar文件,你必指定在你的geode进程中需要访问的定制的jar包。例如,如果你打算
在你的数据区域中使用定制的压缩器,你应该指定你想使用的包括压缩程序的应用jar包。
启动一个带有嵌入缓存的应用
java -cp "path_to_product/lib/geode-dependencies.jar:/path/to/your/applications/classes.jar"
com.mycompany.package.ApplicationWithEmbeddedCache
注意:另外一种你的应用服务器进程类路径的方法是使用gfsh deploy命令。部署应用jar文件会自动更新
所有成员的类路径。更多详情请查看为apache geode成员部署应用jar文件。