node-jvm - jvm em node.js puro
public class Main {
public static long fib ( int n ) {
if ( n <= 1 ) return n ;
return fib ( n - 1 ) + fib ( n - 2 );
}
public static void main ( String [] args ) {
if ( args . length == 0 ) {
System . out . print ( "help: java Main.class {Number}" );
return ;
}
int N = Integer . parseInt ( args [ 0 ]);
long start = System . currentTimeMillis ();
System . out . format ( "Fibonacci from 1 to %s: n " , N );
for ( int i = 1 ; i <= N ; i ++) {
System . out . println ( i + ": " + fib ( i ));
}
long stop = System . currentTimeMillis ();
System . out . println ( "time: " + ( stop - start ) + "ms" );
System . out . println ( "done." );
}
}
var JVM = require ( "node-jvm" ) ;
var jvm = new JVM ( ) ;
jvm . setLogLevel ( 7 ) ;
var entryPointClassName = jvm . loadJarFile ( "./Main.jar" ) ;
jvm . setEntryPointClassName ( entryPointClassName ) ;
jvm . on ( "exit" , function ( code ) {
process . exit ( code ) ;
} ) ;
jvm . run ( [ 15 ] ) ;
cd examples/fibonacci; make
./fibonacci.js
make clean
Fibonacci from 1 to 15:
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55
11: 89
12: 144
13: 233
14: 377
15: 610
time: 106ms
done.
cd examples/
arrays - working with different types of arrays
dogs - simple object-oriented programming
fibonacci - recursion
jsclass - java and javascript mix
switcher - working with different switches
cast - cast for different types
ex - program exceptions
ex2 - jvm exceptions
idogs - working with interface
static - working with static objects
threads - multithreading
Yaroslav Gaponov (yaroslav.gaponov -at - gmail.com)
A Licença MIT (MIT)
Direitos autorais (c) 2013 Yaroslav Gaponov
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar , publicar, distribuir, sublicenciar e/ou vender cópias do Software e permitir que as pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM HIPÓTESE ALGUMA OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.