GithubHelp home page GithubHelp logo

recaf-launcher's Introduction

Recaf Launcher

A simple solution for running Recaf.

Usage

All usage assumes you are running the command similar to java -jar launcher.jar ...:

  • Where launcher.jar is the file name you saved the launcher as.
  • Where ... includes additional arguments, details of which can be found below.

Auto

  • Checks local system compatibility
  • Keeps JavaFX up-to-date
  • Keeps Recaf up-to-date
  • Runs Recaf
Usage: <launcher> auto

Run

  • Runs the currently installed version of Recaf
Usage: <launcher> run
  -j, --java=<javaExecutable>
         Path of Java executable to use when running Recaf.
         Not specifying a value will use the same Java executable used by the
           launcher.

Compatibility

  • Checks for a compatible version of Java
  • Checks if the current Java runtime includes JavaFX
    • Bundling JavaFX can work, but its your responsibility to ensure the bundled version is compatible with Recaf
    • Ideally use a JDK that does not bundle JavaFX and let the launcher pull in JavaFX
Usage: <launcher> compatibility [-ifx] [-ss]
      -ifx, --ignoreBundledFx
         Ignore problems with the local system's bundled JavaFX version
      -ss, --skipSuggestions
         Skip solutions to detected problems

Update Recaf

  • Keeps Recaf up-to-date
Usage: <launcher> update

If you want to be on the bleeding edge of things there is an alternative command:

Usage: <launcher> update-ci [-b=<branch>]
Installs the latest artifact from CI
  -b, --branch=<branch>   Branch name to pull from.
                          By default, no branch is used.
                          Whatever is found first on the CI will be grabbed.

Update JavaFX

  • Keeps Recaf's local JavaFX cache up-to-date with the current release of JavaFX
  • Can be configured to use specific versions of JavaFX if desired
  • Can be configured to delete old versions of JavaFX in the cache automatically
Usage: <launcher> update-jfx [-cfk] [-maxc=<maxCacheCount>]
                             [-maxs=<maxCacheSize>] [-v=<version>]
  -c, --clear               Clear the dependency cache
  -f, --force               Force re-downloading even if the local install
                              looks up-to-date
  -k, --keepLatest          Keep latest cached dependency in the cache when
                              clearing
      -maxc, --maxCacheCount=<maxCacheCount>
                            Clear the dependency cache when this many files
                              occupy it
      -maxs, --maxCacheSize=<maxCacheSize>
                            Clear the dependency cache when this many bytes
                              occupy it
  -v, --version=<version>   Target JavaFX version to use, instead of whatever
                              is the latest

Check Recaf's version

  • Prints out the version of Recaf installed via the launcher
Usage: <launcher> version

recaf-launcher's People

Contributors

col-e avatar sureshg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

recaf-launcher's Issues

failed to fetch dependencies

runed java -jar update-jfx
and the following error appeared
java.nio.file.NoSuchFileException: C:\Users\neilhuang007\AppData\Roaming\Recaf\dependencies at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86) at java.base/sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:541) at java.base/java.nio.file.Files.newDirectoryStream(Files.java:481) at java.base/java.nio.file.Files.list(Files.java:3767) at software.coley.recaf.launch.info.JavaFxVersion.getLocalVersion(JavaFxVersion.java:66) at software.coley.recaf.launch.commands.UpdateJavaFX.update(UpdateJavaFX.java:153) at software.coley.recaf.launch.commands.UpdateJavaFX.call(UpdateJavaFX.java:44) at software.coley.recaf.launch.commands.UpdateJavaFX.call(UpdateJavaFX.java:24) at picocli.CommandLine.executeUserObject(CommandLine.java:2041) at picocli.CommandLine.access$1500(CommandLine.java:148) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) at picocli.CommandLine.execute(CommandLine.java:2170) at software.coley.recaf.launch.Launcher.main(Launcher.java:51)

Unable to run Recaf through launcher: java.lang.UnsatisfiedLinkError

Here's the stdout generated when using Azul Zulu 21: stdout_zulu21.txt

Same thing with Eclipse Adoptium 17: stdout_adoptium17.txt

The exception java.lang.UnsatisfiedLinkError: 'java.lang.String com.sun.javafx.font.PrismFontFactory.regReadFontLink(java.lang.String)' is probably generated by some JavaFX incompatibility. I'm unsure if either of these runtimes have JavaFX bundled, but a quick find for jfx/javafx in the install directory yields nothing. Thanks in advance.

Dependencies folder needs to exist

First time installing the launcher. When running java -jar recaf-launcher-0.1.3.jar update-jfx, it attempts to download dependencies into AppData\Roaming\Recaf\dependencies. In my case, the dependencies directory did not exist and the launcher did not make an attempt to create the directory automatically. This caused the dependency download to fail.

unable to update jfx

dependencies folder in appdata\recaf isnt created automatically :(((

Failed downloading FX artifact: ' https://repo1.maven.org/maven2/org/openjfx/javafx-media/22-ea+16/javafx-media-22-ea+16-win.jar'
java.nio.file.NoSuchFileException: C:\Users\yeah\AppData\Roaming\Recaf\dependencies\javafx-media-22-ea+16-win.jar
        at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source)
        at java.base/java.nio.file.Files.newOutputStream(Unknown Source)
        at java.base/java.nio.file.Files.copy(Unknown Source)
        at software.coley.recaf.launch.commands.UpdateJavaFX.updateTo(UpdateJavaFX.java:200)
        at software.coley.recaf.launch.commands.UpdateJavaFX.update(UpdateJavaFX.java:159)
        at software.coley.recaf.launch.commands.UpdateJavaFX.call(UpdateJavaFX.java:44)
        at software.coley.recaf.launch.commands.UpdateJavaFX.call(UpdateJavaFX.java:24)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
        at picocli.CommandLine.execute(CommandLine.java:2170)
        at software.coley.recaf.launch.Launcher.main(Launcher.java:51)
        ```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.