runelite / launcher

Launcher for RuneLite
https://runelite.net
BSD 2-Clause "Simplified" License
67 stars 96 forks source link

Launcher closes without error dialog when it doesn't recognize commandline options. #114

Open geheur opened 1 year ago

geheur commented 1 year ago

In RuneLite (configure) set the client arguments field to "--profile profilename", save, and launch the client. The splash screen will show up momentarily, disappear, and then nothing will happen and an error is logged:

2023-04-15 11:12:05 [RuneLite] ERROR n.r.launcher.ReflectionLauncher - Unable to launch client
java.lang.reflect.InvocationTargetException: null
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at net.runelite.launcher.ReflectionLauncher.lambda$launch$0(ReflectionLauncher.java:61)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: joptsimple.UnrecognizedOptionException: profile profilename is not a recognized option
    at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
    at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
    at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
    at joptsimple.OptionParser.parse(OptionParser.java:396)
    at net.runelite.client.RuneLite.main(RuneLite.java:200)
    ... 6 common frames omitted

There should be some kind of error dialog letting people know that something went wrong.

Adam- commented 1 year ago

It has to be --profile=profilename I think. Or put them on a different line. But logging the error is sort of the intended behavior.. I am not sure a dialog is really required.

geheur commented 1 year ago

Forgot to make this clear but the client doesn't start at all after the splash screen. That's why I thought there should be a dialog here, rather than just silently failing.

I didn't realize that would work if it was on different lines though.