我正在尝试运行一个使用protobuf.jar的java程序,但我一直收到这个错误。
我在linux中设置了我的classpath变量,以便:
CLASSPATH=/home/.../src/PlaceServer.class:/home/.../src/protobuf.jar:/home/.../src
export CLASSPATH
但是当我在jar中读取后在命令行中运行我的程序时。
java PServer
我明白了:
java.lang.NoClassDefFoundError: com/google/protobuf/MessageOrBuilder
然而,当我运行另一个同时读取相同jar的程序时,这个名为BServer
java BServer
它工作正常,并且正确,因为我想要它。我甚至尝试在这些命令下运行
java -cp .protobuf.jar PServer
它仍然不适用于PServer。
但是,如果我从命令行在我的Macbook上运行相同的程序(也在任一操作系统的Eclipse中运行),我没有得到这个例外,一切正常。
感谢您的帮助!
答案 0 :(得分:0)
有几件事要检查以消除此错误:
在Eclipse中运行应用程序时,IDE将使用项目文件夹中的.classpath文件解决此问题。当您构建应用程序(创建jar)时,您可能会意外省略此类,或更改其位置。
你需要做的是首先打开jar,并确保所讨论的类实际上在jar中,在同一路径中。然后,浏览上面的列表。