我正在尝试在eclipse中生成我的Java文件的serialVersionUID,但遇到Eclipse : Cannot generate a serial version ID中描述的错误。我已经按照该问题中的指示进行操作,但是我没有缺少路径文件,但仍然遇到相同的错误。另外,我必须使用随机生成的serialVersionUID(尽管通常为ok to use just 1L),因为这是我的项目的要求。
由于我的日食不合作,我正在尝试命令行解决方案。我发现的命令serialver不会生成serialVersionUID。根据{{3}},serverver应该在文件中生成一个serialVersionUID:
- serialver命令
JDK具有一个称为“ serialver”的内置命令,用于生成 serialVersionUID自动。在此示例中,您使用“ serialver” 为地址类生成serialVersionUID。
E:\workspace\target\classes>serialver Address Address: static final long serialVersionUID = -687991492884005033L;
但是,我在类目录中的一个类上运行了此命令,终端返回了此错误:
Class Classname.java not found.
无论我在终端中输入serialver Classname
还是serialver Classname.java
都给出了此错误。我还在与文件相同的目录中运行它,并且错误仍然存在。
如何在Linux命令行中使用serialver
来设置Java文件的serialVersionUID?如果serialver
不是我应该使用的命令,那么哪个命令(或一系列命令)是正确的方法?
我想从命令行在我的文件中生成并分配了serialVerionUID ,因此How to generate SerialVersionUID的编程方法不是我想要的。换句话说,我希望命令在文件顶部生成以下代码:
private static final long serialVersionUID = <some random long>;
答案 0 :(得分:2)
您可能需要为包含已编译类的目录(例如-classpath
)指定bin
。要引用一个类,您必须使用其完全合格的名称,包括软件包-例如一个arraylist类
serialver -classpath bin java.util.ArrayList
答案 1 :(得分:0)
您需要在包含已编译的.class文件的目录中运行serialver
,并指定不带扩展名的类名(Classname,而不是Classname.java)。