judovana / java-runtime-decompiler

GNU General Public License v3.0
68 stars 14 forks source link

Incorrect usage of findlib in `start.sh` #212

Closed mkoncek closed 3 years ago

mkoncek commented 3 years ago

Note that start.bat is probably out of date already after added -util and -api subpackages.

mkoncek commented 3 years ago

I didn't mention the reason for this. Probably no one has noticed but i am getting NoClassDefFound errors. This actually may be caused by default sort order and my locale.

AurumTheEnd commented 3 years ago

Note that start.bat is probably out of date already after added -util and -api subpackages.

Very correct. EDIT: https://github.com/pmikova/java-runtime-decompiler/issues/213

I didn't mention the reason for this. Probably no one has noticed but i am getting NoClassDefFound errors. This actually may be caused by default sort order and my locale.

Yes, both implementations of findLib in the launch scripts rely on implicit descending ordering of the directories in the maven repository, and then getting the tail (== largest version number). Surprised this has not become a problem earlier. In the Bash script, sort -V is used, meaning --version-sort: natural sort of (version) numbers within text. Weird that that could be locale based... In the Batch script, we rely on dir's name sort and get the largest version number from the tail (==last for loop iteration...).

mkoncek commented 3 years ago

The problem wasn't sorting the numbers but rather that the regex without [[:digit:]] also accepted the -util and -api jars which ended up below the implementation jar. Probably even nothing to do with locale.