@@ -7,36 +7,8 @@ The output consists of these parts:
7
7
* Stripped down version -- a runtime image
8
8
* JDK built for the EV3 - ` jdk-ev3.zip `
9
9
* 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.
40
12
41
13
## Building
42
14
@@ -67,3 +39,7 @@ sudo docker run --rm -it -v <path on host, where the sources should be stored>:/
67
39
```
68
40
8 . If the build was successful, JDK packages were created in ` /build/jre-ev3.zip ` , ` /build/jdk-ev3.zip ` and ` /build/jdk-pc.zip ` .
69
41
If 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