You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move the files to a folder named ! (for instance: C:\temp!\jadx-gui-1.3.1-no-jre-win.exe)
Run jadx-gui
The program does not start.
Diagnosis of the problem:
Using Procmon I see that jadx-gui starts the process: "C:\Program Files\Java\jdk-17.0.1\bin\javaw.exe" -Xms328m -Xmx4601m -Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true -XX:+UseG1GC -classpath "C:\Temp\!\jadx-gui-1.3.1-no-jre-win.exe;lib\jadx-gui-1.3.1-all.jar" jadx.gui.JadxGUI
If I replace javaw.exe with java.exe and run in CMD, I get the error log:
C:\>"C:\Program Files\Java\jdk-17.0.1\bin\java.exe" -Xms328m -Xmx4601m -Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true -XX:+UseG1GC -classpath "C:\Temp\!\jadx-gui-1.3.1-no-jre-win.exe;lib\jadx-gui-1.3.1-all.jar" jadx.gui.JadxGUI
Failed to auto configure default logger context
Reported exception:
ch.qos.logback.core.joran.spi.JoranException: Could not open URL [jar:file:/C:/Temp/!/jadx-gui-1.3.1-no-jre-win.exe!/logback.xml].
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:57)
at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
at jadx.gui.JadxGUI.<clinit>(JadxGUI.java:18)
Caused by: java.io.FileNotFoundException: C:\Temp (Access is denied)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:344)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:213)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1312)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1277)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:243)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:172)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:347)
at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:191)
at java.base/sun.net.www.protocol.jar.JarFileFactory.getOrCreate(JarFileFactory.java:91)
at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:132)
at java.base/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:175)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:52)
... 10 more
15:13:15,892 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
15:13:15,893 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
15:13:15,893 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/C:/Temp/!/jadx-gui-1.3.1-no-jre-win.exe!/logback.xml]
15:13:15,902 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@470e2030 - URL [jar:file:/C:/Temp/!/jadx-gui-1.3.1-no-jre-win.exe!/logback.xml] is not of type file
15:13:15,903 |-ERROR in ch.qos.logback.classic.joran.JoranConfigurator@3fb4f649 - Could not open URL [jar:file:/C:/Temp/!/jadx-gui-1.3.1-no-jre-win.exe!/logback.xml]. java.io.FileNotFoundException: C:\Temp (Access is denied)
at java.io.FileNotFoundException: C:\Temp (Access is denied)
at at java.base/java.io.RandomAccessFile.open0(Native Method)
at at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:344)
at at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
at at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:213)
at at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1312)
at at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1277)
at at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709)
at at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:243)
at at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:172)
at at java.base/java.util.jar.JarFile.<init>(JarFile.java:347)
at at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
at at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
at at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:191)
at at java.base/sun.net.www.protocol.jar.JarFileFactory.getOrCreate(JarFileFactory.java:91)
at at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:132)
at at java.base/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:175)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:52)
at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
at at jadx.gui.JadxGUI.<clinit>(JadxGUI.java:18)
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaUI.<clinit>(RSyntaxTextAreaUI.java:43)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.createRTextAreaUI(RSyntaxTextArea.java:801)
at org.fife.ui.rtextarea.RTextAreaBase.init(RTextAreaBase.java:656)
at org.fife.ui.rtextarea.RTextArea.init(RTextArea.java:886)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.init(RSyntaxTextArea.java:1996)
at org.fife.ui.rtextarea.RTextAreaBase.<init>(RTextAreaBase.java:82)
at org.fife.ui.rtextarea.RTextArea.<init>(RTextArea.java:181)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.<init>(RSyntaxTextArea.java:341)
at jadx.gui.settings.JadxSettings.<clinit>(JadxSettings.java:48)
at jadx.gui.settings.JadxSettingsAdapter$1.shouldSkipField(JadxSettingsAdapter.java:37)
at com.google.gson.internal.Excluder.excludeField(Excluder.java:184)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(ReflectiveTypeAdapterFactory.java:69)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(ReflectiveTypeAdapterFactory.java:65)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:154)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
at com.google.gson.Gson.getAdapter(Gson.java:489)
at com.google.gson.Gson.fromJson(Gson.java:962)
at com.google.gson.Gson.fromJson(Gson.java:928)
at com.google.gson.Gson.fromJson(Gson.java:877)
at com.google.gson.Gson.fromJson(Gson.java:848)
at jadx.gui.settings.JadxSettingsAdapter.fromString(JadxSettingsAdapter.java:86)
at jadx.gui.settings.JadxSettingsAdapter.load(JadxSettingsAdapter.java:61)
at jadx.gui.JadxGUI.main(JadxGUI.java:23)
Caused by: java.util.MissingResourceException: Can't find bundle for base name org.fife.ui.rsyntaxtextarea.RSyntaxTextArea, locale en_US
at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2045)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1683)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1586)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1549)
at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:858)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaEditorKit.<clinit>(RSyntaxTextAreaEditorKit.java:90)
... 23 more
Caused by: java.lang.ClassCastException: org.fife.ui.rsyntaxtextarea.RSyntaxTextArea cannot be cast to ResourceBundle
at java.base/java.util.ResourceBundle$Control.newBundle0(ResourceBundle.java:3211)
at java.base/java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:3151)
at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1984)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1770)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1656)
... 27 more
The text was updated successfully, but these errors were encountered:
The '!' in the directory name is interfering with the syntax of a jar url.
According to the specification for Jar URLs found in java.net.JarURLConnection,
"!/" should be recognized as the separator for a jar entry
So only solution is to not use path with directory ends with !.
Best I can do is to add additional check and print error message to notice user about that issue.
OS: Windows 10
Steps to reproduce:
Diagnosis of the problem:
Using Procmon I see that jadx-gui starts the process:
"C:\Program Files\Java\jdk-17.0.1\bin\javaw.exe" -Xms328m -Xmx4601m -Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true -XX:+UseG1GC -classpath "C:\Temp\!\jadx-gui-1.3.1-no-jre-win.exe;lib\jadx-gui-1.3.1-all.jar" jadx.gui.JadxGUIIf I replace javaw.exe with java.exe and run in CMD, I get the error log:
The text was updated successfully, but these errors were encountered: