Java:在Unix中找不到类

Moh*_*igh 4 java unix compilation

我试图在Unix机器上运行Java文件.让我先说明目录结构:

/home/username
  |_ SimpleMail.java
  |_ mail.jar
Run Code Online (Sandbox Code Playgroud)

我用以下代码编译了java代码:

# javac -classpath mail.jar SimpleMail.java
Run Code Online (Sandbox Code Playgroud)

编译完成后,目录有:

/home/username
      |_ SimpleMail.java
      |_ mail.jar
      |_ SimpleMail.class
Run Code Online (Sandbox Code Playgroud)

现在我尝试运行SimpleMail类文件.这给了Class not found错误:我试图使用以下命令运行该类:

# java -classpath mail.jar SimpleMail
Run Code Online (Sandbox Code Playgroud)

错误:

The java class is not found:  SimpleMail
Run Code Online (Sandbox Code Playgroud)

这个过程有什么问题?

谢谢 :)

Jon*_*eet 5

您还需要在类路径中包含当前目录,以便在那里获取类文件:

java -classpath mail.jar:. SimpleMail
Run Code Online (Sandbox Code Playgroud)

如果SimpleMail不在包中,这将有效.否则,您应该-d .在运行时编译并包含程序包名称java:

javac -d . -classpath mail.jar SimpleMail.java

java -classpath mail.jar:. my.pkg.SimpleMail
Run Code Online (Sandbox Code Playgroud)