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

时间:2015-02-19 21:57:06

标签: java jar javamail javac

我编写了一个java文件(名为SendEmail.java),它使用javax.mail.jar和javax.activator.jar进行编译和运行。
现在我编写了另一个导入SendEmail的java文件(名为Check.java) 我在这里遇到的问题是在编译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.

1 个答案:

答案 0 :(得分:1)

我想你想要:

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

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