1

javax.scripting フレームワークでサードパーティの jar ファイルを使用できますか。クラスパスに追加するものはありますか?

4

2 に答える 2

0

単純に、スクリプト フレームワークを呼び出すプロセスのクラスパスに配置し、関連するクラスをインポートすることを期待します (インポート ステートメント/メカニズムは、使用しているスクリプト言語によって明らかに異なります)。

于 2012-11-13T11:31:45.707 に答える
0

はい、できます。

これを試して。

// import the packages.
importPackage(java.io);
importPackage(java.net);
importPackage(java.util);
importPackage(java.util.jar);

// Create a loader function
function loadJar( filename ){
    var file = new File(filename);
    // Create the class loader
    var loader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});
    // The JAR file
    var jar = new JarFile(file);
    var entries = jar.entries();

    while (entries.hasMoreElements()){
        var element = entries.nextElement();
        if (element.getName().endsWith(".class")){
            try {
                // Load the class
                loader.loadClass(element.getName());
            } catch (Exception e){ e.printStackTrace(); }
        }
    }
}

このスクリプトを他のすべての jar ファイルより前に実行すると、これが機能します。MANIFEST.MFそれ以外の場合は、ファイルを編集して、必要なライブラリをクラスパスに追加するだけです。

beanshellまた、JDK 1.1 でも動作するものを使用することをお勧めします。

ビーンシェルの場合、使用できます

addClassPath("<jar-file-name>");
于 2012-11-13T11:43:43.870 に答える