Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从命令行生成Java文件的串行版本UID? 背景_Java_Linux_Serialversionuid - Fatal编程技术网

如何从命令行生成Java文件的串行版本UID? 背景

如何从命令行生成Java文件的串行版本UID? 背景,java,linux,serialversionuid,Java,Linux,Serialversionuid,我试图在eclipse中生成java文件的serialVersionUID,但出现了中描述的错误。我已经按照这个问题中的说明进行了操作,但是我没有丢失路径文件,仍然会遇到相同的错误。此外,我必须使用随机生成的serialVersionUID(尽管通常是这样),因为这是我的项目的一个要求 问题 由于我的eclipse不合作,我正在尝试一种命令行解决方案。我找到的命令没有生成serialVersionUID。根据serialver,应在文件中生成serialVersionUID: serialver

我试图在eclipse中生成java文件的serialVersionUID,但出现了中描述的错误。我已经按照这个问题中的说明进行了操作,但是我没有丢失路径文件,仍然会遇到相同的错误。此外,我必须使用随机生成的serialVersionUID(尽管通常是这样),因为这是我的项目的一个要求

问题 由于我的eclipse不合作,我正在尝试一种命令行解决方案。我找到的命令没有生成serialVersionUID。根据serialver,应在文件中生成serialVersionUID:

  • serialver命令
  • JDK有一个名为“serialver”的内置命令来生成 serialVersionUID自动生成。在本例中,使用“serialver” 为Address类生成SerialVersionId

     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
    不是我应该使用的命令,那么哪个命令(或一系列命令)是正确的方法

    澄清 我希望在我的文件中从命令行生成并分配SerialVerionID,因此的编程方法不是我想要的。换句话说,我希望命令在文件顶部生成以下代码:

    private static final long serialVersionUID = <some random long>;
    
    private static final long serialVersionUID=;
    
    您需要在包含已编译.class文件的目录中运行
    serialver
    ,并指定不带扩展名的类名(classname,而不是classname.java)。

    您可能需要为包含已编译类的目录指定
    -classpath
    (例如
    bin
    )。要引用一个类,必须使用它的完全限定名,包括包——例如arraylist类

    serialver -classpath bin java.util.ArrayList
    

    如何生成链接非常有用,特别是对于Intellij IDEA方法。我想我应该为遇到这个问题但不想使用命令行方法的其他人提一下。