Skip to content

Instantly share code, notes, and snippets.

@IdelsTak
Created January 2, 2024 13:26
Show Gist options
  • Save IdelsTak/a63c176312d5be05e4d3d3fda0baac6d to your computer and use it in GitHub Desktop.
Save IdelsTak/a63c176312d5be05e4d3d3fda0baac6d to your computer and use it in GitHub Desktop.
Generate serialVersionUID Script for Java Classes

Generate serialVersionUID Script for Java Classes

#!/bin/bash

# Check if class file exists
if [ ! -f "$1.class" ]; then
  echo "Error: Class file $1.class not found."
  exit 1
fi

# Generate serialVersionUID using md5 hash
serialVersionUID=$(md5sum $1.class | cut -d ' ' -f 1)

# Convert the MD5 hash to a Long value
longSerialVersionUID=$((16#${serialVersionUID:0:16}))

# Ensure the Long value is positive
if [ $longSerialVersionUID -lt 0 ]; then
  longSerialVersionUID=$((longSerialVersionUID + 9223372036854775808))
fi

# Print the generated serialVersionUID as Long with 'L' suffix
echo "Generated serialVersionUID: ${longSerialVersionUID}L"

How to Use

  • Save the script - copy the script content and save it in a file named generate_serialVersionUID.sh, for instance
  • Make it executable - to make the script executable run
$ chmod +x generate_serialVersionUID.sh
  • Generate serialVersionUID - navigate to the directory containing your .class file and run the script using (replacing ClassName with your class name)
$ ./generate_serialVersionUID.sh ClassName
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment