使用wsgen时找不到类/名称错误



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

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

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

主类是驻留在包com.example.ws中的Test

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

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

这导致:

线程"main"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[选项]

我错过了什么?

你试过这样的东西吗?

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

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

来自Java文档:

每个类路径都应该以一个文件名或目录结束,这取决于您将类路径设置为:

  • 对于包含.class文件的.jar或.zip文件,类路径以.zip或.jar文件的名称结束
  • 对于未命名包中的.class文件,类路径以包含.class的目录结束
  • 对于命名包中的.class文件,类路径以包含"的目录结束;根";包(完整包名称中的第一个包)

相关内容

  • 没有找到相关文章