1

ここに未解決の問題を残しました


カスタム codegen を作成しようとしています。ファイルを codegen プロジェクト内に配置することで機能させることができましたが、次のように機能させたい: https://github.com/swagger-api/swagger-codegen#独自のコード生成モジュールの作成

自動生成されたプロジェクトをまったく変更していませんが、取得し続けています:

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 

ここからjarを取得しましたhttps://mvnrepository.com/artifact/io.swagger/swagger-codegen-project/2.1.6 これは私がやっていることです:

  1. 実行 java -jar swagger-codegen-cli-2.1.6.jar meta \ -o output/myLibrary -n myClientCodegen -p com.my.company.codegen してコスチューム コードジェンを作成する

  2. mvn packageoutput/myLibrary で実行

  3. 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 outputlocationswagger-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 

「エラー:メインクラスが見つからないか、ロードできませんでした」という問題の回答を見てきましたが、修正できませんでした。

ここにjarへのリンクがあります

4

3 に答える 3

2

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

于 2016-11-21T18:39:49.240 に答える
1

swagger-codegen-2.1.6.jar問題は、呼び出しで正しいパスを指定していないことです。それが -classを見つけることができない理由mainです。

ルート プロジェクト内にいる場合は、次のswagger-codegenように指定する必要があります。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

クラスパスを作成するときに-cpswagger-codegen-cli-2.1.6.jar. 以下をテストしてください。

myClientCodegen-swagger-codegen-1.0.0.jar両方の (およびswagger-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

java pは、メイン クラスが使用可能かどうかをチェックしio.swagger.codegen.SwaggerCodegenます。私のマシンでは、これを印刷します:

Compiled from "SwaggerCodegen.java"
public class io.swagger.codegen.SwaggerCodegen {
  public io.swagger.codegen.SwaggerCodegen();
  public static void main(java.lang.String[]);
}
于 2016-07-15T16:26:23.093 に答える
0

macOS 10.14 の Eclipse 4.19 で Spring Boot アプリとして実行すると、次のような問題が発生しました。

「エラー: メイン クラス io.swagger.Swagger2SpringBoot が見つからないか、読み込めませんでした」

…main メソッドを含むまさにこのクラスをじっと見つめていたときでさえ。私の解決策は、「maven update project」を発行することでした。これにより、奇妙な Java 症状を伴う他の状況と同様に、問題が修正されました。

于 2021-05-21T22:21:33.750 に答える