如何编译使用另一个需要 jar 文件的 java class 的 java 文件?

How to compile a java file which uses another java class that requires jar files?

我写了一个 java 文件(称为 SendEmail.java),它使用 javax.mail.jar 和 javax.activator.jar 进行编译,运行.
现在我写了另一个 java 文件(称为 Check.java)导入 SendEmail.
我在这里面临的问题是在我编译时Check.java。我使用与编译 SendEmail.java 时相同的类路径对其进行编译。这些文件位于一个名为 pack 的包中。

我用来编译的命令 SendEmail.java -

C:\Users\Myname\code\javafiles>javac -cp ".;.\pack\javax.activation.jar;.\pack\ja
vax.mail.jar;" pack\SendEmail.java

我用来编译的命令 Check.java -

C:\Users\Myname\code\javafiles>javac -cp ".;.\pack\javax.activation.jar;.\pack\ja
vax.mail.jar;" pack\Check.java 

我得到的错误是-

C:\Users\Myname\code\javafiles>javac -cp ".;.\pack\javax.activation.jar;.\pack
\javax.mail.jar;" pack\Check.java  
pack\Check.java:3: error: cannot access SendEmail  
import pack.SendEmail.*;  
           ^
  bad class file: .\pack\SendEmail.class  
    class file contains wrong class: SendEmail  
    Please remove or make sure it appears in the correct subdirectory of the cla
sspath.

我想你想要:

javac -cp ".;.\pack\javax.activation.jar;.\pack\javax.mail.jar;" pack\Check.java

是的,您真的应该将 jar 文件移出包含源和 class 文件的目录。