Java 错误:从Linux命令行运行时,无法找到或加载main类main

Java 错误:从Linux命令行运行时,无法找到或加载main类main,java,linux,command-line,Java,Linux,Command Line,最初,我可以从命令行运行代码,如下所示: java -cp "/var/www/html/tcqa/bin/test_and_control-1.0-SNAPSHOT.jar:/var/www/html/tcqa/bin/postgresql-9.3-1100-jdbc41.jar" Main /var/www/html/tcqa/sql/tc.sql 我需要添加一些新功能,并决定分解主类和用例来管理将运行哪个sql语句。我将我的主类移出,无法从命令行运行代码。我的新命令行如下所示: java

最初,我可以从命令行运行代码,如下所示:

java -cp "/var/www/html/tcqa/bin/test_and_control-1.0-SNAPSHOT.jar:/var/www/html/tcqa/bin/postgresql-9.3-1100-jdbc41.jar" Main /var/www/html/tcqa/sql/tc.sql
我需要添加一些新功能,并决定分解主类和用例来管理将运行哪个sql语句。我将我的主类移出,无法从命令行运行代码。我的新命令行如下所示:

java -cp ["/home2/smontoya/test_and_control-1.0-SNAPSHOT.jar:/var/www/html/tcqa/bin/postgresql-9.3-1100-jdbc41.jar;"] Main email /var/www/html/tcqa/sql/email.sql
main
|-->java
    |--> email
    |    |__ EmailFlag
    |    |__ EmailRow
    |--> tc
    |    |__  Analytics
    |    |__ Row
    |    |__  TestAndControl
    |    |__  Utils
    |--> Main
显然,我想在进入生产模式之前对其进行测试。 我的代码结构如下所示:

java -cp ["/home2/smontoya/test_and_control-1.0-SNAPSHOT.jar:/var/www/html/tcqa/bin/postgresql-9.3-1100-jdbc41.jar;"] Main email /var/www/html/tcqa/sql/email.sql
main
|-->java
    |--> email
    |    |__ EmailFlag
    |    |__ EmailRow
    |--> tc
    |    |__  Analytics
    |    |__ Row
    |    |__  TestAndControl
    |    |__  Utils
    |--> Main

请检查jar中的清单文件。。它描述了版本和main类。
如果您使用的是maven。。添加依赖项以构建jar时,请在配置中描述主类,以便maven将此配置添加到清单文件中

尝试指定主类的完全限定名称:

java -cp /path1:/path2 com.company.Main arg1 arg2

发布您正在获取的错误我找到了解决方案。问题是这两个jar文件不在同一位置。一个位于我的bin目录中,另一个位于另一个完全不同的位置(目录结构)。在两个jar文件位于同一目录中之后,主要错误消失了……正如stackdev提到的,u可以将主类namw与package设置为ClassPath。问题是这两个文件不在同一目录位置。在我把这两个文件放在同一个目录位置后,一切正常。