I finally managed to obfuscated my program, after realizing I could not obfuscated the Java FX Controller class, since UI Components could not be injected anymore, I rewrote everything, so the Controller does not have be obfuscated.
So far so good, when I start my program now, as soon as the GUI is to be displayed, I get new Exceptions:
java.lang.NoSuchMethodException: com.sun.prism.shader.FillPgram_Color_Loader.loadShader(com.sun.prism.ps.ShaderFactory,java.io.InputStream)
at java.base/java.lang.Class.getMethod(Class.java:2201)
at com.sun.prism.d3d.D3DResourceFactory.createStockShader(D3DResourceFactory.java:412)
at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:263)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:484)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:355)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(BaseShaderGraphics.java:900)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(BaseShaderGraphics.java:601)
at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1507)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1112)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:852)
at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:754)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.InternalError: Error loading stock shader FillPgram_Color
at com.sun.prism.d3d.D3DResourceFactory.createStockShader(D3DResourceFactory.java:417)
at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:263)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:484)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:355)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(BaseShaderGraphics.java:900)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(BaseShaderGraphics.java:601)
at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1507)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1112)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:852)
at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:754)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.NoSuchMethodException: com.sun.prism.shader.FillPgram_Color_Loader.loadShader(com.sun.prism.ps.ShaderFactory,java.io.InputStream)
at java.base/java.lang.Class.getMethod(Class.java:2201)
at com.sun.prism.d3d.D3DResourceFactory.createStockShader(D3DResourceFactory.java:412)
at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:263)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:484)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:355)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(BaseShaderGraphics.java:900)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(BaseShaderGraphics.java:601)
at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1507)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1112)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:852)
at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:754)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.InternalError: Error loading stock shader FillPgram_Color
at com.sun.prism.d3d.D3DResourceFactory.createStockShader(D3DResourceFactory.java:417)
at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:263)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:484)
at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:355)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(BaseShaderGraphics.java:900)
at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(BaseShaderGraphics.java:601)
at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1507)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1112)
at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:852)
at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:754)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.UnsatisfiedLinkError: Can't obtain invoke method from class com.sun.jna.Native$ffi_callback
at com.sun.jna.Native.initIDs(Native Method)
at com.sun.jna.Native.<clinit>(Native.java:139)
at com.sun.jna.Pointer.<clinit>(Pointer.java:41)
at com.kosprov.jargon2.nativeri.backend.NativeRiJargon2Backend.copyToMemory(NativeRiJargon2Backend.java:274)
at com.kosprov.jargon2.nativeri.backend.NativeRiJargon2Backend.rawHash(NativeRiJargon2Backend.java:77)
at com.kosprov.jargon2.internal.Jargon2BackendAdapter.rawHash(Jargon2BackendAdapter.java:23)
at com.kosprov.jargon2.internal.HasherImpl.rawHash(HasherImpl.java:236)
at app.A.A(CryptoUtils.java:37)
at app.B.B(Encryptor.java:74)
at app.B.B(Encryptor.java:117)
at app.E$2.A(ProgressController.java:193)
at app.E$2.call(ProgressController.java:1)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:832)
I did exclude / keep JavaFX etc via:
-keepclasseswithmembers,includedescriptorclasses,includecode class java** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class javax** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class com** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class javafx** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class jdk** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class org** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class sun** {
<fields>;
<methods>;
}
-keepclasseswithmembers,includedescriptorclasses,includecode class argon2** {
<fields>;
<methods>;
}
-keep,includedescriptorclasses,includecode class app.Controller** {
<fields>;
<methods>;
}
I checked the class for the top Exception, and there indeed is no such method, however the class is not obfuscated, so it's been like that before.
Im also unsure about the last Exception, since I also excluded the argon2 library.