@@ -13,7 +13,17 @@ The output consists of these parts:
1313 * It has ` javac ` (jdk.compiler module).
1414 * JShell remote launcher (hackish, linux-only) is available.
1515
16- ## JShell hack
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+
1727We've managed to run JShell in a kind of "split-mode". The compiler part runs on your powerful computer,
1828whether the not-so-demanding execution is done on the brick. This was almost supported out of the box -
1929the default JShell configuration already uses JDI transport. The only issue is that it does not provide an
@@ -28,11 +38,6 @@ which is used in the local JDI mode, we tunnel a chosen port over the SSH sessio
2838JShell listening socket and itself listens on the remote side. Then, the last task is to run the
2939JShell JDI agent on the remote side, which is handled by SSH as well.
3040
31- Practically, first you have to either [ add] ( https://askubuntu.com/a/4833 ) your pubkey to the EV3 brick's authorized_keys,
32- or set the [ SSH_ASKPASS] ( https://unix.stackexchange.com/a/83991 ) environment variable. Then, run a script from
33- the amd64 JDK: ` bin/jshell-launch.sh <ssh args> ` , where ` <ssh args> ` is an address with an optinal port-specifying flag.
34- The options are just added to the SSH command line and aren't sanitized in any way.
35-
3641## Building
3742
38430 . Clone/download this repo to your computer.
0 commit comments