Utilizando pacotes padrões
Vamos ver na prática a utilização de classes Java em uma aplicação thrust:
//Arquivo index.js
let StringBuilder = Java.type('java.lang.StringBuilder')
var sb = new StringBuilder()
sb.append('Hello').append(' ').append('World')
java.lang.System.out.println(sb.toString())
> thrust index.js
Hello World
Podemos analisar que existem dois modos de utilização, realizando o "import" via _Java.type _ou executando via o Fqn (nome completo) da classe.
Que tal um pouco de stream com Lambdas em Javascript?
//Arquivo index.js
var numeros = java.util.Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8)
let pares = numeros.stream().filter(function (i) {
return i % 2 === 0
}).map(function(a) {
return String(a)
}).collect(java.util.stream.Collectors.joining(','))
print(pares)
> thrust index.js
2,4,6,8
O Nashorn, é uma engine muito poderosa e completa, separe um tempo para dar uma lida na documentação completa em Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM