编译GridDB固定模式连接Java文件时提示com.toshiba.mwcloud.gs包不存在
测试GridDB固定模式连接代码的Connection.java文件时,执行编译命令:
javac java-api/Connection.java
出现以下编译错误:
java-api/Connection.java:4: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.Container;
^
java-api/Connection.java:5: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.Collection;
^
java-api/Connection.java:6: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.GSException;
^
java-api/Connection.java:7: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.GridStore;
^
java-api/Connection.java:8: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.GridStoreFactory;
^
java-api/Connection.java:9: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.Query;
^
java-api/Connection.java:10: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.Row;
^
java-api/Connection.java:11: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.RowKey;
^
java-api/Connection.java:12: 错误: 程序包com.toshiba.mwcloud.gs不存在
import com.toshiba.mwcloud.gs.RowSet;
^
java-api/Connection.java:17: 错误: 找不到符号
public static void main(String[] args) throws GSException{
^
符号: 类GSException
位置: 类Connection
java-api/Connection.java:24: 错误: 找不到符号
GridStore store = GridStoreFactory.getInstance().getGridStore(props);
^
符号: 类GridStore
位置: 类Connection
java-api/Connection.java:24: 错误: 找不到符号
GridStore store = GridStoreFactory.getInstance().getGridStore(props);
^
符号: 变量GridStoreFactory
位置: 类Connection
java-api/Connection.java:26: 错误: 找不到符号
Container<Object, Row> container = store.getContainer("device1");
^
符号: 类Container
位置: 类Connection
java-api/Connection.java:26: 错误: 找不到符号
Container<Object, Row> container = store.getContainer("device1");
^
符号: 类Row
位置: 类Connection
共14个错误
原因与解决方案
核心原因
javac编译时未指定GridDB Java API的依赖包路径,导致无法解析相关类和包。
解决步骤
- 确认已获取GridDB Java SDK的核心依赖包:
gs_client.jar和gs_common.jar(通常随GridDB安装包或官方SDK提供)。 - 编译时通过
-cp(类路径)参数指定依赖包位置。假设依赖包存放于./griddb-lib目录,修改编译命令如下:# Linux/macOS系统 javac -cp "./griddb-lib/gs_client.jar:./griddb-lib/gs_common.jar" java-api/Connection.java:: Windows系统(路径分隔符用分号) javac -cp ".\griddb-lib\gs_client.jar;.\griddb-lib\gs_common.jar" java-api/Connection.java - 运行编译后的类文件时,同样需要指定类路径:
# Linux/macOS系统 java -cp "./griddb-lib/gs_client.jar:./griddb-lib/gs_common.jar:." Connection
内容的提问来源于stack exchange,提问作者ogbeks

