当前位置: 首页 > 知识库问答 >
问题:

错误:无法找到或加载主类Swagger Codegen

漆雕嘉平
2023-03-14

我留下了一个悬而未决的问题

我试图创建一个自定义代码,我设法使它的工作通过把文件内的代码项目,但我希望它的工作方式如下:https://github.com/swagger-api/swagger-codegen#making-your-own-codegen-modules

我根本没有修改自动生成的项目,但我一直得到:

Error: Could not find or load main class io.swagger.codegen.SwaggerCodegen

这是命令行:

java -cp output/myLibrary/target/myCustomCodegen-swagger-codegen-1.0.0.jar:swagger-codegen-cli-2.1.6.jar io.swagger.codegen.SwaggerCodegen generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json -l com.my.company.codegen.Mycustomcodegengenerator -o outputlocation 

我从这里拿到了瓶子https://mvnrepository.com/artifact/io.swagger/swagger-codegen-project/2.1.6这就是我正在做的:

>

  • 运行java-jarswagger-codegen-cli-2.1.6.jarmeta\-o输出/myLibrary-n myClientCodecen-pcom.my.company.codegen创建服装代码

    在output/myLibrary中运行mvn包

    运行java-cp-output/myLibrary/target/myCustomCodegen-swagger-codegen-1.0.0。jar:swagger-codegen-cli-2.1.6。jar io。大摇大摆codegen。SwaggerCodegen生成-ihttps://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json-l com。我的公司codegen。Mycustomcodegengenerator-o outputlocation,位于包含swagger-codege-cli-2.1.6的文件夹中。jar和输出文件夹

    如果删除第一部分,它会找到类,但没有找到新语言:

    java -cp swagger-codegen-cli-2.1.6.jar io.swagger.codegen.SwaggerCodegen generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json -l com.my.company.codegen.Mycustomcodegengenerator -o outputlocation 
    

    我已经查看了“错误:无法找到或加载主类”问题的答案,但还没有解决它。

    这是罐子的链接

  • 共有3个答案

    蔺宇
    2023-03-14

    我在macOS 10.14中的Eclipse 4.19中作为Spring Boot应用程序运行时遇到了类似的问题:

    “错误:无法找到或加载主类io.swagger.Swagger2SpringBoot”

    …就在我盯着这个包含main方法的类的时候。我的解决方案是发布一个“maven更新项目”。与其他出现奇怪Java症状的情况一样,这解决了这个问题。

    红存
    2023-03-14

    问题是您没有指定正确的swagger-codegen-2.1.6路径。jar。这就是为什么它找不到主类的原因。

    如果您在根项目中,则应该这样指定它:modules/swagger-codegen-cli/target/swagger-codegen-cli。jar

    ~$ cd ~/git/swagger-codegen # go into your root project
    ~/git/swagger-codegen$ # ... do the steps you described
    ~/git/swagger-codegen$ java  -cp \
     output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \
     io.swagger.codegen.SwaggerCodegen \
     generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json \
     -l com.my.company.codegen.Mycustomcodegengenerator \
     -o outputlocation
    

    或者作为一句俏皮话:

    ~/git/swagger-codegen$ java  -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json -l com.my.company.codegen.Mycustomcodegengenerator -o outputlocation
    

    更新1

    我很确定,当你用cp构建类路径时,你用swagger-codegen-cli-2.1.6犯了一个错误。jar。请测试以下内容。

    将两个(myClientCodegen-swagger-codegen-1.0.0.jarswagger-codegen-cli-2.1.6.jar)jar复制到同一个文件夹中。然后进入此文件夹并尝试以下操作:

    javap -cp myCustomCodegen-swagger-codegen-1.0.0.jar:swagger-codegen-cli-2.1.6.jar io.swagger.codegen.SwaggerCodegen
    

    javap检查主类是否为io。大摇大摆codegen。SwaggerCodegen可用。在我的机器上打印:

    Compiled from "SwaggerCodegen.java"
    public class io.swagger.codegen.SwaggerCodegen {
      public io.swagger.codegen.SwaggerCodegen();
      public static void main(java.lang.String[]);
    }
    
    柴彬
    2023-03-14

    对于Windows,将冒号()更改为分号()-在类路径中的JAR之间。因此

    java -cp output/myLibrary/target/myCustomCodegen-swagger-codegen-1.0.0.jar:swagger-codegen-cli-2.1.6.jar io.swagger.codegen.SwaggerCodegen generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json -l com.my.company.codegen.Mycustomcodegengenerator -o outputlocation
    

    应该是这样的

    java -cp output/myLibrary/target/myCustomCodegen-swagger-codegen-1.0.0.jar;swagger-codegen-cli-2.1.6.jar io.swagger.codegen.SwaggerCodegen generate -i https://watson-api-explorer.mybluemix.net/listings/conversation-v1-experimental.json -l com.my.company.codegen.Mycustomcodegengenerator -o outputlocation
    

    多个类路径需要用分号分隔。http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

     类似资料:
    • 问题内容: 我想连接我的java程序以连接数据库并检索数据。它的编译完美,但运行时即时得到这个 我已经安装了Java SQL驱动程序,并将jar路径作为CLASSPATH添加到环境变量中 问题答案: 您应该从这里下载驱动程序 和JAR文件需要添加到项目类路径。 首先,右键单击Eclipse Project,然后单击Project-> Build Path-> Configure Build Pat

    • 当我正常运行此代码时,它会吐出: 异常线程"main"java.lang.ClassNotFoundExcture: bookReader 在java.net.URLClassLoader.find类(URLClassLoader.java:381) 在java.lang.ClassLoader.load类(ClassLoader.java:424)<在sun.misc.启动$AppClassLo

    • 问题内容: 我在笔记本电脑上有一个日食项目,我将其推送到Git https://github.com/chrisbramm/LastFM-History-Graph.git 它可以完全在我的笔记本电脑上运行,并且可以正常运行/构建,但是在我的台式机上,Eclipse没有显示错误 错误:找不到或加载主类lastfmhistoryguis.InputPanel 我尝试从以下位置构建项目: 但是什么也没

    • 此依赖项导致Eclipse Juno在pom.xml上给出一个红色十字标记,并在

    • 我使用的是Java Maven程序,我不知道输入什么作为

    • 我是Java编程新手。我有这样一个类,它应该运行一个. bat文件,该文件位于我的本地磁盘的一个文件夹中: 每当我运行.bat文件时,它都会正常工作。但是,当我运行我创建的类时,命令提示符显示“C:\palmuswebservice” 我不知道怎么了。有人能帮我解决这个问题吗?

    • 我已经在Linux Mint Throgh CLi上安装了最新的,安装细节如下: 在命令中,它显示如下: 错误:无法找到或加载主类 org.codehaus.plexus.classworlds.launcher.Launcher mani@manithullimilli ~/apache-maven-3.2.5/bin $ 我也设置了路径

    • 我正在尝试使用Apache Kafka执行一个示例生产者消费者应用程序。我从 https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka-0.10.0.0-src.tgz 下载了它。然后我开始按照 http://www.javaworld.com/article/3060078/big-data/big-data-messagi