[英]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:
- 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.