1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-13 11:35:47 +01:00

Use OpenJDK 11 as default JDK (#846)

* Upgrade to JDK11

Eclair can be built and used on Oracle JDK 1.8 or OpenJDK 11.
JavaFX is now embedded in eclair-node-gui and does not need to be installed separately.

* Install: update java download links

OpenJDK 11 is now our recommendation. Tell users to download java from https://jdk.java.net/11

* README: Rewrite installation instructions
This commit is contained in:
Fabrice Drouin 2019-02-21 15:11:44 +01:00 committed by GitHub
parent c0af665990
commit 34e51c19cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 34 additions and 22 deletions

View file

@ -19,7 +19,7 @@ cache:
- .autoconf
- $HOME/.m2
jdk:
- oraclejdk8
- openjdk11
notifications:
email:
- ops@acinq.fr

View file

@ -1,11 +1,12 @@
# Building Eclair
## Requirements
- [Java Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 1.8u161 or newer
- [OpenJDK 11](https://jdk.java.net/11/).
- [Maven](https://maven.apache.org/download.cgi) 3.5.4 or newer
- [Inno Setup](http://www.jrsoftware.org/isdl.php) 5.5.9 (optional, if you want to generate the windows installer)
- [Docker](https://www.docker.com/) 18.03 or newer (optional) if you want to run all tests
:warning: You can also use [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) to build and run eclair, but we recommend you use Open JDK11.
## Build
To build the project, simply run:
```shell
@ -22,8 +23,4 @@ To only build the `eclair-node` module
```shell
$ mvn install -pl eclair-node -am -DskipTests
```
To generate the windows installer along with the build, run the following command:
```shell
$ mvn install -DskipTests -Pinstaller
```
The generated installer will be located in `eclair-node-gui/target/jfx/installer`

View file

@ -54,19 +54,13 @@ deprecatedrpc=signrawtransaction
### Installing Eclair
The released binaries can be downloaded [here](https://github.com/ACINQ/eclair/releases).
Eclair is developed in [Scala](https://www.scala-lang.org/), a powerful functional language that runs on the JVM, and is packaged as a JAR (Java Archive) file. We provide 2 different packages, which internally use the same core libraries:
* eclair-node, which is a headless application that you can run on servers and desktops, and control from the command line
* eclair-node-gui, which also includes a JavaFX GUI
#### Windows
To run Eclair, you first need to install Java, we recommend that you use [OpenJDK 11](https://jdk.java.net/11/). Eclair will also run on Oracle JDK 1.8, Oracle JDK 11, and other versions of OpenJDK but we don't recommend using them.
Just use the windows installer, it should create a shortcut on your desktop.
#### Linux, macOS or manual install on Windows
You need to first install java, more precisely a [JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html).
:warning: If you are using the OpenJDK JRE, you will need to build OpenJFX yourself, or run the application in headless mode (see below).
Then download the latest fat jar and depending on whether or not you want a GUI run the following command:
Then download our latest [release](https://github.com/ACINQ/eclair/releases) and depending on whether or not you want a GUI run the following command:
* with GUI:
```shell
java -jar eclair-node-gui-<version>-<commit_id>.jar

View file

@ -235,6 +235,13 @@
<version>0.9.8</version>
<scope>test</scope>
</dependency>
<!-- neeeded for our docker tests, see https://github.com/spotify/dockerfile-maven/issues/90 -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_${scala.version.short}</artifactId>

View file

@ -101,6 +101,7 @@
<skipNativeVersionNumberSanitizing>true</skipNativeVersionNumberSanitizing>
<nativeOutputDir>${project.build.directory}/jfx/installer</nativeOutputDir>
<mainClass>fr.acinq.eclair.JavafxBoot</mainClass>
<preLoader>fr.acinq.eclair.gui.FxPreloader</preLoader>
<verbose>false</verbose>
<bundler>EXE</bundler>
<updateExistingJar>true</updateExistingJar>
@ -122,6 +123,16 @@
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
</dependency>
<!-- TESTS -->
<dependency>
<groupId>com.typesafe.akka</groupId>

View file

@ -19,9 +19,9 @@ package fr.acinq.eclair
import java.io.File
import akka.actor.ActorSystem
import com.sun.javafx.application.LauncherImpl
import fr.acinq.eclair.gui.{FxApp, FxPreloader}
import grizzled.slf4j.Logging
import javafx.application.Application
/**
* Created by PM on 25/01/2016.
@ -35,7 +35,8 @@ object JavafxBoot extends App with Logging {
implicit val system = ActorSystem("eclair-node-gui")
new Setup(datadir).bootstrap
} else {
LauncherImpl.launchApplication(classOf[FxApp], classOf[FxPreloader], Array(datadir.getAbsolutePath))
System.setProperty("javafx.preloader", classOf[FxPreloader].getName)
Application.launch(classOf[FxApp], datadir.getAbsolutePath)
}
} catch {
case t: Throwable =>

View file

@ -63,7 +63,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<scala.version>2.11.11</scala.version>
<scala.version>2.11.12</scala.version>
<scala.version.short>2.11</scala.version.short>
<akka.version>2.4.20</akka.version>
<akka.http.version>10.0.11</akka.http.version>
@ -127,6 +127,8 @@
<arg>-unchecked</arg>
<arg>-Xmax-classfile-name</arg>
<arg>140</arg>
<!-- needed to compile Scala code on JDK9+ -->
<arg>-nobootcp</arg>
</args>
<scalaCompatVersion>${scala.version.short}</scalaCompatVersion>
</configuration>