1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
## Sample Application
This (really simple ;) application shows how to use Kotlin and the maven plugin to generate JavaScript and invoke it from inside a HTML web page.
The source [Hello.kt](https://github.com/JetBrains/kotlin/blob/master/libraries/examples/browser-example/src/main/kotlin/sample/Hello.kt) uses the [kotlin.browser](https://jetbrains.github.com/kotlin/versions/snapshot/apidocs/kotlin/browser/package-summary.html) API to access the *document* property to modify the HTML.
### Running the sample in a web browser
To run the example try:
cd libraries/examples/browser-example
mvn install
open sample.html
This should open a browser which then shows some simple HTML which then includes some dynamically generated content.
## Running the sample on Java 7 with JavaFX and [kool.io](https://kool.io/)'s browser
You can also run the sample as Java code on a JVM using JavaFX (which includes its own webkit rendering engine for HTML / CSS / JS support) using the [kool.io JavaFX browser](https://github.com/koolio/kool/blob/master/samples/kool-template-sample/ReadMe.md).
First you need to install [Java 7 update 4](https://www.oracle.com/technetwork/java/javase/overview/index.html) or later which ships with JavaFX.
You will need to setup **JAVA_HOME** and **PATH** environment variables to point to the latest JDK. If you install Java 7 and use a Mac you might want to run this first...
export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
You can check you have JavaFX in your JDK install via
ls -l $JAVA_HOME/jre/lib/jfxrt.jar
which should find the JavaFX runtime jar (jfxrt.jar).
### Running the sample in JavaFX
To run the sample try...
mvn test -Pjavafx
Assuming you've Java 7 enabled and JAVA_HOME points to the JRE/JDK for Java 7 or later which includes JavaFX.
This should popup a JVM process with an embedded webkit based browser running the application; using the compiled bytecode on the JVM rather than JavaScript.
|