2013-08-01 2 views
18

asm.js находится в прилавке. Теперь даже слухи о том, что Chrome скоро поддерживают его.Compile Java to asm.js

Но до сих пор он использовался для компиляции C источник/C++ в JavaScript, который будет работать с вблизи родного скорости (зависит от того, как вы определяете вблизи родной ...)

Я планировал использовать GWT, чтобы превратить мой Java-код в JavaScript, но теперь мне было интересно, существует ли в настоящее время существующий путь/процедура для компиляции простого кода Java source для ASM.JS, и что бы это было? более

Одна из причин, почему можно было бы хотеть, чтобы: Java-to-ASM.js might very well run faster then Java-to-Dalvik on some Android phone!

+0

Некоторые другие альтернативы для тех, кто хочет запустить Java в браузере; эмулируя большую часть самого JVM: http://teavm.org/ и http://www.doppiojvm.org/ –

ответ

8

asm.js (в настоящее время) разработан в качестве мишени для языков, которые вручную управлять распределением памяти и высвобождают - как C/C++. В настоящее время он не может обрабатывать языки с семантикой сбора мусора, что глупо, поскольку это может показаться, что это JavaScript, который является средой сбора собранных мусором.

Если вы действительно хотите пройти круглый путь, передайте код Java через j2c, а затем передайте этот вывод C++ через emscripten, который будет скомпилирован в asm.js.

Другая возможность передать код Java через компилятор LLVM с помощью VMKit и передать через emscripten asm.js LLVM бэкэндом ...

+3

Обратите внимание, что сбор мусора в Java написан на C/C++. – Tim

2

не только мусор собирать, но Java VM написано в C/C++, asm.js комментирует the possibility компиляции «целых виртуальных машин с C/C++ на JavaScript и реализует JIT-модули, испускающие JavaScript».

Прямо сейчас (июнь 2015 года) эта возможность далека от реальности, поэтому придерживайтесь GWT (я бы не рекомендовал ее), если вам так хочется.