js2jar
Version:
Compile Nashorn JavaScript code to .jar
79 lines (69 loc) • 1.59 kB
Markdown
1. Install dependencies
- [Node.js](https://nodejs.org/en/download/)
- [JDK 8](http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html)
2. Install JS2Jar
```sh
npm install -g js2jar
```
Create an app
```sh
js2jar create myApp
```
Build and run the app
```sh
cd path/to/myApp
js2jar build
```
or
```sh
js2jar build path/to/myApp
```
It will build the application in the build directory
```javascript
myApp
|---build
| |---lib //.jar libraries
| └---media //Media files like images, sounds, videos
└---src
└---main.js //Main script file
```
```javascript
myApp
|---build
| |---lib
| | └---mylib.jar
| └---media
| └---mypic.jpg
└---src
|---main.js
└---foo.js
```
foo.js
```javascript
print("Hello! I am foo.js")
```
main.js
```javascript
load("foo.js")
var JFrame = Java.type("javax.swing.JFrame");
var JPanel = Java.type("javax.swing.JPanel");
var JButton = Java.type("javax.swing.JButton");
var JLabel = Java.type("javax.swing.JLabel");
var ImageIcon = Java.type("javax.swing.ImageIcon");
var MyLib = Java.type("com.mylib.MyClass");
var win = new JFrame("My Window");
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setSize(400, 400);
var panel = new JPanel();
win.add(panel);
var picLabel = new JLabel(new ImageIcon("media/mypic.jpg"));
panel.add(picLabel);
win.setVisible(true);
```
Compile Nashorn script to Java application