簡體   English   中英

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

[英]How do I generate the serial version UID of a Java file from command line?

背景

我試圖在eclipse中生成我的java文件的serialVersionUID,但是得到了Eclipse中描述的錯誤:無法生成序列版本ID 我已按照該問題中的說明進行操作,但我沒有丟失路徑文件但仍然得到相同的錯誤。 另外,我必須使用隨機生成的serialVersionUID(即使通常只需使用1L ),因為這是我項目的要求。

問題

由於我的日食不合作,我正在嘗試命令行解決方案。 我找到的命令serialver不會生成serialVersionUID。 根據如何生成SerialVersionUID, serialver應在文件中生成serialVersionUID:

  1. serialver命令

JDK有一個名為“serialver”的內置命令,可以自動生成serialVersionUID。 在此示例中,您使用“serialver”為Address類生成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,因此如何在Java中以編程方式生成serialVersionUID的編程方法 不是我想要的。 換句話說,我希望命令在我的文件頂部生成這段代碼:

private static final long serialVersionUID = <some random long>;

您可能需要為包含已編譯類的目錄(例如bin )指定-classpath 要引用類,必須使用其完全限定名稱,包括包 - 例如,對於arraylist類

serialver -classpath bin java.util.ArrayList

您需要在包含已編譯的.class文件的目錄中運行serialver ,並指定不帶擴展名的類名(Classname,而不是Classname.java)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM