【问题标题】:compiling and running java code on cmd prompt with .jar files使用 .jar 文件在 cmd 提示符下编译和运行 java 代码
【发布时间】:2016-11-23 15:58:26
【问题描述】:

我在 Windows 机器上的一些代码放置在以下目录中。
src 文件夹(父文件夹)包含:

 1. subfolder1: 
     a.java
     b.java
     c.java
 3. subfolder2:
     d.java
     e.java
     f.java
 4. runfile.java

还有一个lib 文件夹,其中包含:

 1. x.jar
 2. y.jar

此代码最初是在 Eclipse 上编写的,因此编译和运行它很简单。在这里我想我需要考虑很多事情。

依赖关系:

  1. runfile.java 导入 subfolder1.c
  2. a.java、b.java 和 c.java 都在同一个包中
  3. d.java、e.java、f.java都在同一个包中,导入 lib 文件夹中的 x.jar 和 y.jar 库。

我是如何编译的:

javac -cp .:../lib/* runfile.java

我得到:错误:包子文件夹 1 不存在。
由于某种原因,在编译 runfile.java 时它不会注意到 c.java 文件

如果我让它编译,运行它会很简单:

java runfile

还是必须以某种方式提及 .jar 文件?

【问题讨论】:

  • 如果可以使用 maven / gradle 构建工具,为什么要从命令行编译它们?

标签: java cmd compilation compiler-errors


【解决方案1】:

如果您的项目变得更加复杂,我建议您使用合适的构建工具,例如(按最佳到最坏的顺序)Gradle、Ant 或 Maven。

javac -sourcepath . -cp ../lib/* runfile.java

我认为应该适用于编译,是的,你还需要为运行时设置类路径

java -cp .;../lib/* runfile

【讨论】:

  • 使用第一个命令编译代码可以完美运行,但是当我尝试使用第二个命令运行时,出现错误:无法找到或加载主类运行文件。
  • 您使用的是 Windows 还是 Linux?
  • 我在 Windows 上
  • 啊,你应该提到的。在 Windows 上,路径分隔符是 ;,而不是像 *nix 或 Mac 上的 :
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
相关资源
最近更新 更多