fix: use fork of directories library with JNI implemetation for Windows (#2401)

This commit is contained in:
Skylot
2025-02-04 17:53:45 +00:00
parent afdd2d8b39
commit 5d5bf325fe
5 changed files with 21 additions and 3 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<module name="jadx.jadx-gui.main"/>
<option name="PROGRAM_PARAMETERS" value="-v"/>
<option name="VM_PARAMETERS"
value="-Xms128M -XX:MaxRAMPercentage=70.0 -Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true -Djava.util.Arrays.useLegacyMergeSort=true -Djdk.util.zip.disableZip64ExtraFieldValidation=true -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false -Dsun.java2d.ddforcevram=true -Dsun.java2d.ddblit=false -Dswing.useflipBufferStrategy=True"/>
value="-Xms128M -XX:MaxRAMPercentage=70.0 -Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true -Djava.util.Arrays.useLegacyMergeSort=true -Djdk.util.zip.disableZip64ExtraFieldValidation=true -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --enable-native-access=ALL-UNNAMED -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false -Dsun.java2d.ddforcevram=true -Dsun.java2d.ddblit=false -Dswing.useflipBufferStrategy=True"/>
<method v="2">
<option name="Make" enabled="true"/>
</method>
+2
View File
@@ -37,6 +37,8 @@ application {
"-XX:MaxRAMPercentage=70.0",
// disable zip checks (#1962)
"-Djdk.util.zip.disableZip64ExtraFieldValidation=true",
// Foreign API access for 'directories' library (Windows only)
"--enable-native-access=ALL-UNNAMED",
)
applicationDistribution.from("$rootDir") {
include("README.md")
@@ -3,5 +3,5 @@ plugins {
}
dependencies {
implementation("dev.dirs:directories:26")
implementation("io.get-coursier.util:directories-jni:0.1.3")
}
@@ -8,6 +8,9 @@ import java.util.function.Function;
import org.jetbrains.annotations.Nullable;
import dev.dirs.ProjectDirectories;
import dev.dirs.impl.Windows;
import dev.dirs.impl.WindowsPowerShell;
import dev.dirs.jni.WindowsJni;
public class JadxCommonFiles {
@@ -58,11 +61,22 @@ public class JadxCommonFiles {
private synchronized ProjectDirectories loadDirs() {
if (dirs == null) {
dirs = ProjectDirectories.from("io.github", "skylot", "jadx");
dirs = ProjectDirectories.from("io.github", "skylot", "jadx", DirsLoader::getWinDirs);
}
return dirs;
}
/**
* Return JNI or Foreign implementation
*/
private static Windows getWinDirs() {
Windows defSup = Windows.getDefaultSupplier().get();
if (defSup instanceof WindowsPowerShell) {
return new WindowsJni();
}
return defSup;
}
public Path getCacheDir() {
return cacheDir;
}
+2
View File
@@ -73,6 +73,8 @@ application {
// needed for ktlint formatter
"-XX:+IgnoreUnrecognizedVMOptions",
"--add-opens=java.base/java.lang=ALL-UNNAMED",
// Foreign API access for 'directories' library (Windows only)
"--enable-native-access=ALL-UNNAMED",
// flags to fix UI ghosting (#2225)
"-Dsun.java2d.noddraw=true",
"-Dsun.java2d.d3d=false",