Problem z Runnable JAR File

Problem z Runnable JAR File
superdurszlak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 2002
0
marcin070707 napisał(a):

Rozumiem, ale nie ma w takim razie metody jak to ominąć że folder w którym jest plik kończy się znakiem "!"? Nie jest to może mega problem bo zwykle tak nie jest, ale jednak może się tak zdarzyć jak u mnie teraz...

Za https://docs.oracle.com/javase/7/docs/api/java/net/JarURLConnection.html:

The syntax of a JAR URL is:

Kopiuj
jar:<url>!/{entry}

Więc pierwszy napotkany ciąg !/ zostanie uznany za punkt rozdzielający właściwy URL / PATH od zawartości JARa. Czemu nie ciąg .jar!/ albo np. regexp \\.(j|w)ar!/? Nie wiem. Pewnie popsułby coś innego :P

Możesz spróbować przed wciągnięciem obrazka trochę przerobić ścieżkę -> znaleźć ten właściwy "punkt przecięcia" (czyli u Ciebie "jar!/"), podzielić w tym miejscu swój path na dwie części i w pierwszej (czyli tej po lewej od punktu przecięcia) zamienić / na \\. Wg. tego pana to powinno pomóc, ale czy na pewno.... no nic, skoro się boisz tego typu przypadków, to co Ci szkodzi to wypróbować? :P

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Z tego co widzę to nawet w najnowszym JDK11 ten problem nadal występuje i nie zanosi się na jego poprawienie ;]

superdurszlak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 2002
2
Shalom napisał(a):

Z tego co widzę to nawet w najnowszym JDK11 ten problem nadal występuje i nie zanosi się na jego poprawienie ;]

Oczywiście że nie :D

Najpierw musi się pojawić jakiś... Nie wiem, YodaJarURL tudzież inny YodaFileReader, który ten problem obejdzie, potem ten cosiownik będzie musiał przez parę lat okrzepnąć i nabrać renomy czegoś, co wreszcie działa jak trzeba, potem kolejne 3-5 lat aż się Oracle przemoże i ogłosi, że wciągną coś podobnego od wersji... No, pewnie jakiegoś 17LTS jak nic :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.