zookeeper项目,我已经将相关jar包添加到项目中,但是java -cp执行时,还是找不到相关的类,怎么解决?

fish - Hadooper

赞同来自: 小心巴

参考bootcamp项目中的test_kafka中的pom.xml定义,在其中加入类似:
        <plugins> 
             <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
这样,当执行mvn package之后,会产生一个有assembly字样的jar包,其中会将所有依赖包都打进去。   另外一种方法: java -cp <your_app_jar>:<dependency_jar> <main_class> 这样执行,就是在执行命令中,加上<dependency_jar>这其中包含所有你依赖的包(比如zookeeper的包)的具体路径。

fish - Hadooper

赞同来自: 小心巴

其实用hadoop jar执行,也可以。

wangxiaolei

赞同来自:

私信下ip,密码

yanglei

赞同来自:

能否把每一步的详细过程描述清楚? 泛泛地问别人很难知道问题出在哪儿。

fish - Hadooper

赞同来自:

java -cp后面跟的是自己打包出来的jar文件?如果自己打包出来的jar文件中,没有包含所依赖的第三方包(就是说不是assembly形式的“胖”Jar包),就会出现找不到class的情况。(你所加的zookeeper,实际只在编译时起了作用,没有打到生成的jar里面,也没有在-cp定义中加上zookeeper的jar包,在执行时就找不到它)

要回复问题请先登录注册