从其他位置运行代码时,带外部jar的noClassdeffounderror

时间:2012-02-27 23:25:53

标签: java

我正在学习Java并试图在另一台机器上测试我的代码,但我遇到了上述错误。我看了youtube视频,阅读论坛(和SO),但仍然无法让它工作。

我基本上使用引用外部jar文件的eclipse在我的mac上编写了一些代码。我在我的lib文件夹中有那个jar,并通过右键单击“Build Path - > Add to Build Path”将它添加到我在Eclipse的构建路径中。代码在我的笔记本电脑上正常工作。

但是当我尝试从linux命令行运行它时,我得到了上述错误。我从eclipse中获取代码并将其复制到文件(first_try.java),然后运行以下命令:

CLASSPATH=./jedis-2.0.0.jar;export CLASSPATH 
javac first_try.java 
java -classpath . first_try

然后我收到错误:Exception in thread "main" java.lang.NoClassDefFoundError: redis/clients/jedis/Jedis我通过wget和已检查权限下载了程序并尝试了不同的变体。我发现了一个类似的问题(在许多相关的问题中),它有与我的相似的上下文,但是它对用户来说只是输入java filename(这对我不起作用)

我正在学习一些java代码但从未成功运行外部jar。我想知道我做错了什么以及我可以做些什么来永久修复它(理想情况下我想在本地编写代码然后复制它并在另一台机器上测试它)?

或者是否有更好的方法将依赖于第三方jar的代码部署到其他系统?

1 个答案:

答案 0 :(得分:1)

您正在构建类路径env var,但之后不要在java命令中使用该值。在-classpath之后需要$ CLASSPATH而不是dot 祝你好运学习java,我很享受使用它超过10年了;)