0

我遇到了一个问题,wsgen虽然我已经看到了一些有效的答案,但这些解决方案似乎都不适合我。我相信这个问题与源代码和二进制文件的结构有关。

我的WSTest项目设置有以下文件夹:

bin
└───com
    └───example
        └───ws
src
└───com
    └───example
        └───ws

主类Test位于 package 中com.example.ws

我正在使用以下命令wsgen从主项目文件夹运行:WSTest

wsgen -cp ./bin/com/example/ws -d ./src/com/example/ws -s ./src/com/example/ws Test

这导致:

线程“主”java.lang.NoClassDefFoundError 中的异常(错误名称:com/example/ws/Test)

这是有道理的,因为类是包的一部分。因此,我将命令更改为以下内容:

wsgen -cp ./bin/com/example/ws -d ./src/com/example/ws -s ./src/com/example/ws com.example.ws.Test

wsgen但现在我从工具中找不到类:

找不到类:“com.example.ws.Test”

用法:WSGEN [选项]

我错过了什么?

4

1 回答 1

2

你有没有尝试过这样的事情?

wsgen -cp ./bin -d ./src -s ./src com.example.ws.Test

类路径文件夹wsgen用于查找类文件。类中的包被解析为文件夹路径,因此com.example.ws.Test应该是类路径文件夹com/example/ws/Test.class中的bin文件。

Java 文档

每个类路径都应以文件名或目录结尾,具体取决于您将类路径设置为:

  • 对于包含 .class 文件的 .jar 或 .zip 文件,类路径以 .zip 或 .jar 文件的名称结尾。
  • 对于未命名包中的 .class 文件,类路径以包含 .class 文件的目录结尾。
  • 对于命名包中的 .class 文件,类路径以包含“根”包(完整包名中的第一个包)的目录结尾。
于 2013-12-17T22:00:38.843 回答