编译时如何通配符包含JAR文件?

2022-09-01 00:03:04

我在java文件(MyRtmpClient.java)中有以下内容:

import org.apache.mina.common.ByteBuffer;

并且位于 JAR 文件中(当然具有正确的目录结构)。该jar文件和我需要的其他文件与.java文件位于同一目录中。ByteBuffer

然后我用下面一行编译:

javac -cp ".;*.jar" MyRtmpClient.java

但是我得到错误:

MyRtmpClient.java:3: package org.apache.mina.common does not exist
import org.apache.mina.common.ByteBuffer;

如何在我的项目中包含 jar 文件?


答案 1

您的命令行是正确的,但有一些注意事项:

  • 您必须具有javac >= 1.6,因为只有在该版本中,编译器才会将“*”解析为各种JAR文件。
  • 您必须运行Windows,因为“;”仅是该操作系统的路径分隔符(它在Unix上不起作用,Unix上的路径分隔符是“:”)。

我假设JAR文件具有您所述的正确目录结构。


答案 2

javac 不理解类路径参数中的 *.jar。您需要显式指定每个 jar。例如:

javac -cp ".;mina.jar" MyRtmpClient.java