Java, As far as I understand, is still very object-oriented and very clumsy.
Kotlin, as far as I understand, fixes those issues.
How much modern Java have you read or written recently?
Modern Java supports functional programming and is not as clumsy as it used to be:
https://betterprogramming.pub/functional-programming-in-java...
Java also has better cross-platform support than C#.
Xamarin - RoboVM was a Java-based competitor to Xamarin which Xamarin acquired in 2015, but it was shutdown in 2017 after Microsoft acquired Xamarin. There are some Java-based toolkits such as https://www.codenameone.com/ that target mobile, but they are probably not as well funded as Xamarin has been under Microsoft. From what I hear Xamarin will be deprecated and replaced by MAUI.
Avalonia - Java has had multiplatform windowing for much longer than C# has. The Java Swing toolkit has been part of Java for more than a decade and is still supported in OpenJDK. JavaFX (https://openjfx.io/) is a newer toolkit that was originally part of Java and was later spun out into its own project.
How well are Xamarin and Avalonia supported if you are doing C# development on Mac or Linux?
>> How do I run Java on iOS?
As stated above, some tools such as https://www.codenameone.com/ and https://github.com/google/j2objc that convert Java code to target iOS.
I have never tried using those tools so I am not sure how good they are.
Neither codenameone nor j2objc seem to be anywhere close in terms of features (including tooling).
That said, there's actually some interesting stuff in that link. The ability to assign an anonymous class to an interface is super fascinating.
But if I'm starting new, My understanding is that Kotlin is superior in almost every way.