Col-E / Recaf

The modern Java bytecode editor
https://recaf.coley.software
MIT License
6k stars 463 forks source link

Cannot run Recaf 4.X on Windows #766

Closed belotv closed 8 months ago

belotv commented 8 months ago

Describe the bug

Recaf 4.X cannot be started on Windows

To Reproduce

Steps to reproduce the behavior:

  1. Compile with Gradle
  2. Run recaf-ui.bat

Exception

Windows complains that the bat file cannot be run due to "Input line is too long"

If applicable, add the exception/stacktrace. This line is too long for Windows set CLASSPATH=%APP_HOME%\lib\recaf-ui-4.0.0-SNAPSHOT.jar;%APP_HOME%\lib\recaf-core-4.0.0-SNAPSHOT.jar;%APP_HOME%\lib\atlantafx-base-2.0.1.jar;%APP_HOME%\lib\tiwulfx-dock-1.2.3.jar;%APP_HOME%\lib\ikonli-javafx-12.3.1.jar;%APP_HOME%\lib\ikonli-carbonicons-pack-12.3.1.jar;%APP_HOME%\lib\richtextfx-0.11.2.jar;%APP_HOME%\lib\treemap-fx-1.1.0.jar;%APP_HOME%\lib\javafx-controls-22-ea+16-win.jar;%APP_HOME%\lib\javafx-media-22-ea+16-win.jar;%APP_HOME%\lib\jphantom-1.4.3.jar;%APP_HOME%\lib\asm-commons-9.6.jar;%APP_HOME%\lib\rewrite-java-17-8.13.3.jar;%APP_HOME%\lib\rewrite-java-8.13.3.jar;%APP_HOME%\lib\rewrite-yaml-8.13.3.jar;%APP_HOME%\lib\rewrite-xml-8.13.3.jar;%APP_HOME%\lib\rewrite-core-8.13.3.jar;%APP_HOME%\lib\gizmo-1.0.11.Final.jar;%APP_HOME%\lib\asm-util-9.6.jar;%APP_HOME%\lib\asm-analysis-9.6.jar;%APP_HOME%\lib\asm-tree-9.6.jar;%APP_HOME%\lib\dex-translator-1.1.1.jar;%APP_HOME%\lib\jasm-composition-jvm-518b763f37.jar;%APP_HOME%\lib\asm-9.6.jar;%APP_HOME%\lib\binary-resources-31.3.0-alpha01.8.jar;%APP_HOME%\lib\cafedude-core-2.0.1.jar;%APP_HOME%\lib\weld-se-core-5.1.2.Final.jar;%APP_HOME%\lib\weld-lite-extension-translator-5.1.2.Final.jar;%APP_HOME%\lib\weld-environment-common-5.1.2.Final.jar;%APP_HOME%\lib\weld-core-impl-5.1.2.Final.jar;%APP_HOME%\lib\weld-spi-5.0.SP3.jar;%APP_HOME%\lib\weld-api-5.0.SP3.jar;%APP_HOME%\lib\jakarta.enterprise.cdi-api-4.0.1.jar;%APP_HOME%\lib\cfr-0.152.jar;%APP_HOME%\lib\directories-26.jar;%APP_HOME%\lib\core-1.1.1.jar;%APP_HOME%\lib\extra-collections-1.2.3.jar;%APP_HOME%\lib\extra-observables-1.3.0.jar;%APP_HOME%\lib\gson-2.10.1.jar;%APP_HOME%\lib\instrumentation-server-1.4.0.jar;%APP_HOME%\lib\lljzip-2.3.0.jar;%APP_HOME%\lib\logback-classic-1.4.11.jar;%APP_HOME%\lib\picocli-4.7.5.jar;%APP_HOME%\lib\procyon-compilertools-0.6.0.jar;%APP_HOME%\lib\jackson-dataformat-smile-2.16.1.jar;%APP_HOME%\lib\jackson-module-parameter-names-2.16.1.jar;%APP_HOME%\lib\jackson-databind-2.16.1.jar;%APP_HOME%\lib\jackson-annotations-2.16.1.jar;%APP_HOME%\lib\jackson-core-2.16.1.jar;%APP_HOME%\lib\jackson-dataformat-xml-2.16.1.jar;%APP_HOME%\lib\jlinker-1.0.7.jar;%APP_HOME%\lib\regexodus-0.1.15.jar;%APP_HOME%\lib\jasm-core-518b763f37.jar;%APP_HOME%\lib\vineflower-1.9.3.jar;%APP_HOME%\lib\ikonli-core-12.3.1.jar;%APP_HOME%\lib\undofx-2.1.1.jar;%APP_HOME%\lib\flowless-0.7.2.jar;%APP_HOME%\lib\reactfx-2.0-M5.jar;%APP_HOME%\lib\wellbehavedfx-0.3.3.jar;%APP_HOME%\lib\javafx-graphics-22-ea+16-win.jar;%APP_HOME%\lib\guava-32.1.2-jre.jar;%APP_HOME%\lib\jakarta.enterprise.lang-model-4.0.1.jar;%APP_HOME%\lib\jakarta.interceptor-api-2.1.0.jar;%APP_HOME%\lib\jakarta.annotation-api-2.1.1.jar;%APP_HOME%\lib\jakarta.el-api-5.0.1.jar;%APP_HOME%\lib\jakarta.inject-api-2.0.1.jar;%APP_HOME%\lib\jboss-classfilewriter-1.3.0.Final.jar;%APP_HOME%\lib\fastutil-8.5.11.jar;%APP_HOME%\lib\reflectasm-1.11.9.jar;%APP_HOME%\lib\args4j-2.33.jar;%APP_HOME%\lib\logback-core-1.4.11.jar;%APP_HOME%\lib\slf4j-api-2.0.7.jar;%APP_HOME%\lib\jgrapht-core-1.0.1.jar;%APP_HOME%\lib\commons-text-1.11.0.jar;%APP_HOME%\lib\commons-lang3-3.14.0.jar;%APP_HOME%\lib\procyon-core-0.6.0.jar;%APP_HOME%\lib\woodstox-core-6.5.1.jar;%APP_HOME%\lib\stax2-api-4.2.1.jar;%APP_HOME%\lib\micrometer-core-1.9.17.jar;%APP_HOME%\lib\classgraph-4.8.165.jar;%APP_HOME%\lib\blw-4c984e8c19.jar;%APP_HOME%\lib\javafx-base-22-ea+16-win.jar;%APP_HOME%\lib\failureaccess-1.0.1.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\jboss-logging-processor-2.2.1.Final.jar;%APP_HOME%\lib\java-object-diff-1.0.1.jar;%APP_HOME%\lib\jna-platform-5.14.0.jar;%APP_HOME%\lib\commons-compress-1.25.0.jar;%APP_HOME%\lib\snakeyaml-2.2.jar;%APP_HOME%\lib\antlr4-runtime-4.11.1.jar;%APP_HOME%\lib\snappy-java-1.1.10.5.jar;%APP_HOME%\lib\fastfilter-1.0.2.jar;%APP_HOME%\lib\HdrHistogram-2.1.12.jar;%APP_HOME%\lib\LatencyUtils-2.0.3.jar;%APP_HOME%\lib\jboss-logging-3.5.0.Final.jar;%APP_HOME%\lib\jboss-logging-annotations-2.2.1.Final.jar;%APP_HOME%\lib\jdeparser-2.0.3.Final.jar;%APP_HOME%\lib\jandex-2.4.2.Final.jar;%APP_HOME%\lib\jna-5.14.0.jar

xxDark commented 8 months ago

Where did you get that file from? AFAIK we don't have anything like that. Use https://github.com/Col-E/Recaf-Launcher instead.

belotv commented 8 months ago

It is located in the SNAPSHOT zip built in the the distribution folder (recaf-ui\build\distributions) which is in theory the gradle bundled generated version.

xxDark commented 8 months ago

Guess it is flawed then, had no idea. Anyhow, use the launcher instead.

Col-E commented 8 months ago

Located in recaf-ui\build\distributions

If you are building 4x locally, use gradlew assemble -x compileTestJava -Dskip.jfx.bundle=true

This will generate recaf-ui\build\libs\recaf-ui-4.0.0-SNAPSHOT-all.jar. It's the fatJar of Recaf and all of its dependencies, except JavaFX. It is intended for the user to supply a version of JavaFX themselves (which our launcher manages).

If you are building this just for yourself on your machine, you can omit the -Dskip.jfx.bundle=true and then recaf-ui-4.0.0-SNAPSHOT-all.jar will bundle the JavaFX for your system.