簡體   English   中英

如何訪問Android中SDCard內的Java文件

[英]How to access java file which resides inside SDCard in Android

我正在嘗試使用URLClassLoader類將Java文件加載到我的android項目中。

但是運行以下代碼時出現ClassNotFoundError

package com.xyz.abc;
public class ConstantClassReader
{
    public void readFile() throws MalformedURLException
    {
        String url = "file://"+Environment.getExternalStorageDirectory().getPath()+"/StringConstants.class";
        URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[]{new URL(url)});
        Class simpleClass = null;
        try {
            simpleClass = urlClassLoader.loadClass("com.xyz.abc.StringConstants");
            Constructor simpleConstructor = simpleClass.getConstructor();
            Object simpleClassObj = simpleConstructor.newInstance();
            Method method = simpleClass.getMethod("myMethod");
            method.invoke(simpleClassObj);
        } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

下面的Java文件位於我的SDCard中:

package com.xyz.abc;
public class StringConstants{
    public void myMethod(){
        System.out.println("myMethod Loaded");
    }
}

類加載器加載

將Java源文件放在某處不會。

您必須編譯該文件。 也許那時你很幸運。 但是,如果Android JVM允許您從任意位置加載類,我會感到非常驚訝。 尖叫:“安全問題”到處都是。

根據您的要求,我建議使用其他解決方案,除了普通的Java屬性之外。 含義:似乎您只是想向Java應用程序動態提供一些“配置”信息。 然后,讓該應用讀取包含鍵/值對的屬性文件。 (幾乎)照常營業; 而不需要將類文件加載到任意位置。

http://www.beanshell.org/

您可以嵌入beanshell,加載Java文件,實例並執行任何操作。

從sd像訪問其他任何普通文件一樣訪問java文件

如何在Android中從SD卡讀取文本文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM