@@ -7,36 +7,8 @@ The output consists of these parts:
77 * Stripped down version -- a runtime image
88* JDK built for the EV3 - ` jdk-ev3.zip `
99 * Basically the full build
10- * [ Official OpenJDK linux-amd64] ( http://jdk.java.net/10/ ) with EV3 jmods
11- * Only a stripped down version -- also a runtime image
12- * It can be used for creating custom JRE images. For this, jlink and the ev3 jmods are included.
13- * It has ` javac ` (jdk.compiler module).
14- * JShell remote launcher (hackish, linux-only) is available.
15-
16- ## JShell on the EV3
17-
18- ### Usage
19-
20- First, you have to either [ add] ( https://askubuntu.com/a/4833 ) your pubkey to the EV3 brick's authorized_keys,
21- or set the [ SSH_ASKPASS] ( https://unix.stackexchange.com/a/83991 ) environment variable. Then, run a script from
22- the amd64 JDK on your computer: ` bin/jshell-launch.sh <ssh args> ` , where ` <ssh args> ` is an address with an optinal
23- port-specifying flag. The options are just added to the SSH command line and aren't sanitized in any way.
24-
25- ### Theory
26-
27- We've managed to run JShell in a kind of "split-mode". The compiler part runs on your powerful computer,
28- whether the not-so-demanding execution is done on the brick. This was almost supported out of the box -
29- the default JShell configuration already uses JDI transport. The only issue is that it does not provide an
30- intuitive way to connect to a remote host. JShell always launches a new JVM process in the JDI mode.
31-
32- Our hack relies on replacing the agent in the VM started by JShell. The new dummy agent just
33- writes the port number it was supposed to connect to a file ` /tmp/jshellargs ` . Then, if you make
34- ` jshellargs ` a UNIX pipe, you can very easily pass the port to another application.
35-
36- JShell on your computer is the listening side of the JDWP channel. To reuse the existing remote agent,
37- which is used in the local JDI mode, we tunnel a chosen port over the SSH session. SSH connects to the
38- JShell listening socket and itself listens on the remote side. Then, the last task is to run the
39- JShell JDI agent on the remote side, which is handled by SSH as well.
10+ * EV3 jmods
11+ * It can be used for creating custom JRE images.
4012
4113## Building
4214
@@ -67,3 +39,7 @@ sudo docker run --rm -it -v <path on host, where the sources should be stored>:/
6739```
68408 . If the build was successful, JDK packages were created in ` /build/jre-ev3.zip ` , ` /build/jdk-ev3.zip ` and ` /build/jdk-pc.zip ` .
6941If you have mounted ` /build ` , you can access the files from the host.
42+
43+ ## ~~ JShell on the EV3~~
44+
45+ No longer supported. JShell backend on the EV3 is a huge overkill.
0 commit comments