⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syspackagemanager.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
字号:
// Copyright (c) Corporation for National Research Initiatives// Copyright 2000 Samuele Pedronipackage org.python.core;import java.util.Properties;import java.util.StringTokenizer;import java.io.*;/** System package manager. * Used by org.python.core.PySystemState. */public class SysPackageManager extends PathPackageManager {    protected void message(String msg) {        Py.writeMessage("*sys-package-mgr*",msg);    }    protected void warning(String warn) {        Py.writeWarning("*sys-package-mgr*",warn);    }    protected void comment(String msg) {        Py.writeComment("*sys-package-mgr*",msg);    }    protected void debug(String msg) {        Py.writeDebug("*sys-package-mgr*",msg);    }    public SysPackageManager(File cachedir, Properties registry) {        if(useCacheDir(cachedir)) {            initCache();            findAllPackages(registry);            saveCache();        }    }    public void addJar(String jarfile, boolean cache) {        addJarToPackages(new File(jarfile), cache);        if (cache)            saveCache();    }    public void addJarDir(String jdir, boolean cache) {        addJarDir(jdir, cache, cache);    }    private void addJarDir(String jdir, boolean cache, boolean saveCache) {        File file = new File(jdir);        if (!file.isDirectory()) return;        String[] files = file.list();        for(int i=0; i<files.length; i++) {            String entry = files[i];            if (entry.endsWith(".jar") || entry.endsWith(".zip")) {                addJarToPackages(new File(jdir,entry), cache);            }        }        if (saveCache)            saveCache();    }    private void addJarPath(String path) {        StringTokenizer tok =        new StringTokenizer(path, java.io.File.pathSeparator);        while  (tok.hasMoreTokens())  {            // ??pending: do jvms trim? how is interpreted entry=""?            String entry = tok.nextToken();            addJarDir(entry, true, false);        }    }    private void findAllPackages(Properties registry) {        String paths = registry.getProperty(                              "python.packages.paths",                              "java.class.path,sun.boot.class.path");        String directories = registry.getProperty(                              "python.packages.directories",                              "java.ext.dirs");        String fakepath = registry.getProperty(                              "python.packages.fakepath", null);        StringTokenizer tok = new StringTokenizer(paths, ",");        while  (tok.hasMoreTokens())  {            String entry = tok.nextToken().trim();            String tmp = registry.getProperty(entry);            if (tmp == null) continue;            addClassPath(tmp);        }        tok = new StringTokenizer(directories, ",");        while  (tok.hasMoreTokens())  {            String entry = tok.nextToken().trim();            String tmp = registry.getProperty(entry);            if (tmp == null) continue;            addJarPath(tmp);        }        if (fakepath != null) addClassPath(fakepath);    }    public void notifyPackageImport(String pkg, String name) {        if (pkg != null && pkg.length()>0) name = pkg + '.' + name;        Py.writeComment("import","'"+name+"' as java package");    }    public Class findClass(String pkg,String name) {        Class c = super.findClass(pkg,name);        if (c != null)            Py.writeComment("import","'"+name+"' as java class");        return c;    }    public Class findClass(String pkg, String name, String reason) {        if (pkg != null && pkg.length()>0) name = pkg + '.' + name;        return Py.findClassEx(name,reason);    }    public PyList doDir(PyJavaPackage jpkg, boolean instantiate,                        boolean exclpkgs)    {        PyList basic = basicDoDir(jpkg, instantiate, exclpkgs);        PyList ret = new PyList();        doDir(searchPath, ret, jpkg, instantiate, exclpkgs);        PySystemState system = Py.getSystemState();        if (system.getClassLoader() == null)            doDir(system.path, ret, jpkg, instantiate, exclpkgs);        return merge(basic,ret);    }    public boolean packageExists(String pkg, String name) {        if (packageExists(searchPath, pkg, name)) return true;        PySystemState system = Py.getSystemState();        if (system.getClassLoader() == null &&                 packageExists(Py.getSystemState().path,pkg,name)) {            return true;        }        return false;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -