Jones - ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ OneScript Π½Π° Java.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Java-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΈΠΏΡΡ OneScript.
java -jar /path/to/jonec-exec.jar /path/to/script.os
Π³Π΄Π΅:
/path/to/jonec-exec.jar
- ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. ΠΠ΄Π΅ Π½Π°ΠΉΡΠΈ? Π‘Π°ΠΌΠΎΠΌΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠ΅Π»ΠΈΠ·Π°Ρ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ)./path/to/script.os
- ΠΏΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ OneScript.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
java -jar jonec-exec.jar my-script.os
Π‘ΠΊΡΠΈΠΏΡ my-script.os
:
ΠΠ΅ΡΠ΅ΠΌ Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΡΠ²Π΅ΡΡΠΈΠ§ΠΈΡΠ»ΠΎ()
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ(Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ);
ΠΠΎΠ½Π΅ΡΠΡΠΎΡΠ΅Π΄ΡΡΡ
Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ = 42;
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ (ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° JitPack)
develop-SNAPSHOT
- ΡΠ΅Π³, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±Π΅ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Ρ JitPack. Π’Π΅Π³ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ
Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ΅Π»ΠΈΠ·Ρ), ΡΠ°ΠΊ ΠΈ Ρ
Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° GitHub.
Gradle:
implementation group: 'com.github.otymko', name: 'JOneS', version: 'develop-SNAPSHOT'
Gradle (Kotlin):
implementation("com.github.otymko", "JOneS", "develop-SNAPSHOT")
<dependency>
<groupId>com.github.otymko</groupId>
<artifactId>JOneS</artifactId>
<version>develop-SNAPSHOT</version>
</dependency>
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java:
// ΠΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Jones
Path pathToScript = Path.of("/path/to/my-script.os");
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°
ScriptEngine engine = new ScriptEngine();
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
ScriptCompiler compiler = new ScriptCompiler(engine);
// ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ "Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ"(UserScriptContext)
ModuleImage moduleImage = compiler.compile(pathToScript, UserScriptContext.class);
// Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ· ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
ScriptDrivenObject sdo = engine.newObject(moduleImage);
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎ Π΅Π³ΠΎ ΠΌΠΌΠ΅Π½ΠΈ
int methodId = sdo.getScriptMethod("ΠΡΠ²Π΅ΡΡΠΈΠ§ΠΈΡΠ»ΠΎ");
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄
sdo.callScriptMethod(engine, methodId, new IValue[0]);
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
42
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΠΎΡΠΊΠ° MVP ΠΈ Π²ΡΠΏΡΡΡΠΈΡΡ ΡΠ΅Π»ΠΈΠ·.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Mozilla Public License Version 2.0