Currently we do not support the __bytes__ operator for a Java byte array, but it is easy to add with a customizer.
import jpype
from jpype import java
# Add the customizer before starting the JVM
@jpype.JImplementationFor('byte[]')
class ByteConverter(object):
def __bytes__(self):
return bytes(self[:])
# Now start the JVM
jpype.startJVM(convertStrings=False)
# Perform Java operations
message = "abc".encode()
messageDigest = java.security.MessageDigest.getInstance("SHA-256")
messageDigest.update(message)
hashdata = messageDigest.digest()
# We got back a Java byte[] and we would like a Python bytes
print(bytes(hashdata))
String hashdata = new String(messageDigest.digest());