繁体   English   中英

如何使用 Jar 依赖项编译多个 Java 文件?

[英]How to compile multiple Java files with Jar dependencies?

StackOverflow 上的其他类似答案并不能完全回答这个问题。

我正在运行 Windows 并有两个文件夹: libsrc lib包含依赖项的.jar文件。 我试图通过编译:

javac -cp ".;lib/*" *.java

有效。 每个文件都有一个.class文件,带有主类的.java文件有一个额外的Controller$1.class命名文件。

我试图通过以下所有方式运行该程序:

java -cp ".;lib/*" src/Controller
java -cp ".;lib/*" src/Controller.class
java -cp ".;lib/*" src/Controller$1.class

以上方法均无效。 他们都给了我这个错误:

Error: Could not find or load main class Controller

有什么问题,我该怎么做? 它在我的 IDE 中运行良好,但我正在面试的一家公司想要它包含 JAR 文件,并且可以通过命令行编译和运行。 我已经很久没有编译过这样的东西了,所以我们将不胜感激。

此外,如果它们具有更深的文件夹结构,我如何编译和运行它们。 例如,如果我有以下文件夹/路径:

lib/
src/
src/core
src/models
src/models/enums

你的项目结构似乎是这样的:

root:
lib
src: Controller.java and other files without a package

正确的命令:

javac -sourcepath src -d lib src/*.java
java -cp lib Controller

解释:

javac -cp ".;lib/*" *.java
java -cp ".;lib/*" src/Controller

您没有复制 lib 中的任何类,但您的“cp”设置为 lib。 类 Controller 也没有包,所以:

java -cp "lib" Controller

我相信你想使用javac ,而不是java你提到的那些命令,见下文:

javac -cp ".;lib/*" src/Controller.java

另外,你用什么来构建项目? 如果您使用 Maven,有一些很棒的插件可以让您在打包 JAR 及其依赖项方面更轻松。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM