Java on OpenWrt/DD-WRT
I have an existing solution written in Java which I would love开发者_高级运维 to run on OpenWrt routers. Will OpenWrt even run Java without installing a lot of dependencies? Anyone ever tried this?
I've never done it, but it is definitively possible. You won't be able to run the full Java VM, only specialized versions of it (JamVM, PhoneME, SableVM). Also please be aware that running a Java VM is fairly a lot overhead for this kind of machine.
I won't get much in detail because others have already done it. Check out these links.
- 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 is unmaintained.
EDIT: As Amigable Clark Kant mentioned, you could compile your Java code to native by using the GNU Compiler for Java.
Since your goal is to get the existing solution running on the router, and not explicitly get a JVM running on the router, I would suggest going the other way:
compile the Java code to native! This also has the potential to be just as fast a C code.
There is an article in Linux journal about this.
If not your cup of tea, JAMVM seems a better fit for a small system such as OpenWRT.
I have done this on a Asus WL-HDD some time ago with SableVM. The WL-HDD can run Debian and connect some memory/hdd through USB. But performance was really bad.
Use the Embeded JRE these days. http://www.oracle.com/technetwork/java/embedded/overview/index.html
It also exists for ARM and not only for Intel architecture platforms.
In openwrt version 21.02, you can install Docker directly, so you can also try to run java app in a Docker container.
精彩评论