Java 无法找到或加载主类,但存在.class

Java 无法找到或加载主类,但存在.class,java,javac,Java,Javac,我想用一个库.jar文件编译一堆.java文件。接下来,我以前的GUI程序运行良好。然而,这个命令行程序失败了 $ /opt/jdk1.8.0_131/bin/javac -classpath lib/*.jar *.java $ ls Module1.class Cross.class Ora.java Safe.class Module1.java Cross.java p1/ Safe.java lib/ Ora.class $ g

我想用一个库
.jar
文件编译一堆
.java
文件。接下来,我以前的GUI程序运行良好。然而,这个命令行程序失败了

$ /opt/jdk1.8.0_131/bin/javac -classpath lib/*.jar *.java
$ ls
Module1.class  Cross.class  Ora.java  Safe.class
Module1.java   Cross.java   p1/       Safe.java
lib/           Ora.class      
$ grep main Module1.java
   public static void main(String[] args) {
$ ls lib
jsoup-1.10.3.jar
$ /opt/jdk1.8.0_131/bin/java -classpath .:lib/* Module1
Error: Could not find or load main class Module1

如何解决这个问题?

Module1.java是否没有package语句?如果有一个package语句,则需要将其移动到package文件夹中,并使用如下命令运行

/opt/jdk1.8.0_131/bin/java -classpath .:lib/* package.Module1
我不知道classpath会支持通配符,但看起来像是在Java6中添加了通配符,这显示了我从命令行运行java已经有多长时间了


如果您不确定我在问什么,请将Module1.java的主体添加到您的问题中。

软件包Moule1添加在所有java文件的顶部。正如您所看到的,没有包文件,我必须移动到包文件夹。因此,我删除了包语句,现在一切正常!我不认为我现在需要一个包如果包是Module1,那么类文件需要在Module1目录中,java命令应该是
/opt/jdk1.8.0131/bin/java-classpath.:lib/*Module1.Module1
惯例是在包目录中创建.java文件,因此当编译器创建类文件时,目录将被删除包的结构已经就位。没有一个简单测试程序的包是可以的,但是它在如何使用上有限制。