首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java编译运行

java编译运行
EN

Stack Overflow用户
提问于 2014-04-03 12:39:22
回答 3查看 53关注 0票数 0

我有服务器通过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

正确的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-03 12:40:58

将当前目录添加到类路径

代码语言:javascript
复制
javac -cp .:jdbc.jar package/Server.java
票数 3
EN

Stack Overflow用户

发布于 2014-04-03 13:05:22

假设您已经成功编译了您的代码,并且在执行它时遇到了困难。您需要在类路径中包含以下内容:

  1. 编译类
  2. 外部依赖

假设您的项目结构如下所示:

代码语言:javascript
复制
|
|-- classes
  |-- package
    |-- Server.class
|-- lib
  |-- jdbc.jar

在这里,类包含已编译的java类(eclipse很整洁,但是如果要在不同的远程服务器上运行它们,您可能需要查看系统特定的构建),而且lib包含所有外部依赖项(在您的示例中是jdbc.jar)。

现在可以通过将类和lib文件夹添加到类路径中,从项目根运行代码:

代码语言:javascript
复制
java -cp ./classes:./lib package.Server

但是,我强烈建议使用标准的项目结构,并查看像maven这样的项目经理来维护项目和跨服务器构建。

票数 1
EN

Stack Overflow用户

发布于 2014-04-03 12:45:23

也许你在使用eclipse。如果是这样的话,那么只需将代码复制到主目录中某个新创建的文件中,并运行它。

我遇到了一些问题,并通过以上操作解决了问题。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22838051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档