我有服务器通过JDBC与数据库进行通信。当我编译它的时候
javac -cp jdbc.jar package/Server.java
我得到了无稽之谈的错误,它找不到我的类在其他文件。如果我不使用-cp选项编译它,但使用-cp选项运行它,如下所示:
我明白:java -cp jdbc.jar package.Server:
Exception in thread "main" java.lang.NoClassDefFoundError: package/Server Caused by: java.lang.ClassNotFoundException: package.Server
正确的方法是什么?
发布于 2014-04-03 12:40:58
将当前目录添加到类路径
javac -cp .:jdbc.jar package/Server.java发布于 2014-04-03 13:05:22
假设您已经成功编译了您的代码,并且在执行它时遇到了困难。您需要在类路径中包含以下内容:
假设您的项目结构如下所示:
|
|-- classes
|-- package
|-- Server.class
|-- lib
|-- jdbc.jar在这里,类包含已编译的java类(eclipse很整洁,但是如果要在不同的远程服务器上运行它们,您可能需要查看系统特定的构建),而且lib包含所有外部依赖项(在您的示例中是jdbc.jar)。
现在可以通过将类和lib文件夹添加到类路径中,从项目根运行代码:
java -cp ./classes:./lib package.Server但是,我强烈建议使用标准的项目结构,并查看像maven这样的项目经理来维护项目和跨服务器构建。
发布于 2014-04-03 12:45:23
也许你在使用eclipse。如果是这样的话,那么只需将代码复制到主目录中某个新创建的文件中,并运行它。
我遇到了一些问题,并通过以上操作解决了问题。:)
https://stackoverflow.com/questions/22838051
复制相似问题