如何在 root 设备上像 Android 中的 J2SE JVM 那样调用 Java 类?

发布于 2024-12-25 01:33:16 字数 350 浏览 1 评论 0原文

我们为嵌入式产品构建Android平台。基本上你可以把它想象成一个root的android盒子。

我们有为标准J2SE环境开发的Java代码。我正在将其移植到Android。部分代码被包装在android服务中并在服务中启动。有些部分需要它以超级用户权限运行。就像打开 /dev 文件夹下的文件、绑定到 1024 以下的 tcp 端口等。

我想知道是否可以将此代码包装在 J2SE 风格的公共 Java 类中,并直接使用 dalvik 调用它(即类似“dalvik -classpath < ;jar 路径> mycompany.MyWrapper")。
我很欣赏任何描述执行此操作的方法的链接。

谢谢

We build Android platform for an embedded product. Basically you can think of it as a rooted android box.

We have Java code that was developed for standard J2SE environment. I am porting it to Android. Part of the code was wrapped in an android service and launched in a service. There are parts that require it to run with super user privileges. Like opening files under /dev folder, binding to tcp ports below 1024 etc.

I am wondering if I can wrap this code in a J2SE style public Java class and invoke it using dalvik directly (i.e. something like "dalvik -classpath <paths to jars> mycompany.MyWrapper").

I appreciate any links that describe a way to do this.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白龙吟 2025-01-01 01:33:16

您可以直接从命令行调用 dalvik,并使用标准静态 main(String[] args) 方法执行类。

dalvikvm -cp;

对于完整的示例,假设您在 Hello.java 中有以下类定义

public class Hello
{
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

,然后在设备上实际运行它:

javac Hello.java
dx --dex --output=classes.dex Hello.class
zip Hello.zip classes.dex
adb push Hello.zip /sdcard/
adb shell dalvikvm -cp /sdcard/Hello.zip Hello

You can invoke dalvik directly from the command line, and execute a class with the standard static main(String[] args) method.

dalvikvm -cp <jar_file> <class_name>

For a full example, let's say you have the following class definition in Hello.java

public class Hello
{
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

And then, to actually run it on a device:

javac Hello.java
dx --dex --output=classes.dex Hello.class
zip Hello.zip classes.dex
adb push Hello.zip /sdcard/
adb shell dalvikvm -cp /sdcard/Hello.zip Hello
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文