У меня есть существующее решение, написанное на Java, которое я бы хотел запустить на маршрутизаторах OpenWrt. Будет ли OpenWrt запускать Java без установки множества зависимостей? Кто-нибудь когда-либо пробовал это?
Java на OpenWrt/DD-WRT
Ответ 1
Я никогда этого не делал, но это окончательно возможно. Вы не сможете запускать полную Java VM, только специализированные версии (JamVM, PhoneME, SableVM). Также имейте в виду, что запуск виртуальной машины Java довольно много накладных расходов для этого типа машины.
Я не буду подробно разбираться, потому что другие уже сделали это. Проверьте эти ссылки.
- http://wiki.openembedded.net/index.php/Java
- http://wolfpaulus.com/journal/embedded/fonera3
- http://wolfpaulus.com/talks/openwrt.pdf
- http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvancedGSGOpenWRT
- http://www.oracle.com/technetwork/java/javame/tech/index-jsp-139293.html
EDIT: SableVM не поддерживается.
РЕДАКТИРОВАТЬ. Как упоминалось Amigable Clark Kant, вы можете скомпилируйте свой Java-код для родного, используя GNU Compiler for Java.
Ответ 2
Поскольку ваша цель состоит в том, чтобы запустить существующее решение на маршрутизаторе, а не явно запускать JVM на маршрутизаторе, я бы предложил пойти другим путем:
скомпилируйте Java-код в native! Это также может быть столь же быстрым, как C-код.
В статье Linux есть статья .
Если не ваша чашка чая, JAMVM кажется лучше подходит для небольшой системы, такой как OpenWRT.
Ответ 3
Я сделал это на ASUS WL-HDD некоторое время назад с SableVM. WL-HDD может запускать Debian и подключать некоторую память /hdd через USB. Но производительность была очень плохая.
Ответ 4
Используйте Embeded JRE в наши дни. http://www.oracle.com/technetwork/java/embedded/overview/index.html
Он также существует для ARM и не только для платформ архитектуры Intel.