Преобразование JVM/.NET кода в бинарники?

Возможно, хочется странного (а возможно, не докурил маны по Java). В общем, нет ли такой штуки, чтобы взять программу скомпилированную под JVM или .NET и преобразовать ее в бинарник (не обязательно виндовый), который может запускаться в среде без виртуальной машины? Фактически, хочу прикрепить JIT компилятор прямо к своей программе. Если есть возможность это сделать, не в курсе ли вы, насколько в таком случае увеличивается размер программы?
  • Вопрос задан
  • 2803 просмотра
Решения вопроса 1
c jvm нет ничего проще, чем положить в папку программы каталог jre и в .cmd запуска прописать class_path.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
susl
@susl
Есть gcj, есть еще куча ahead-of-time компиляторов. Но нужно понимать что все равно нужно таскать с собой полноценный рантайм с jit (или на крайний случай интерпретатором) + стандартную библиотеку. Jit (или интерпретатор) нужен потому что можно подгружать классы динамически.
Простенькое консольное приложение скомпиленное gcj со слинкованным рантаймом будет весить несколько десятков метров. Если же не линковать рантайм в бинарник, то разницы с обычным jvm в приницпе нет… и то и то должно стоять в системе отдельно.
К тому же последний раз когда я в этом копался поддержка java была не полная. Не знаю как ситуации сейчас, но думаю не лучше, учитывая что gcj уже пару лет не обновляли.
Ответ написан
у моно есть AOT. Но работает он только в линуксе + насколько я понял не умеет компилировать в .exe (даже если исходным файлом был .exe).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы