注册
Java 操作DM 导入导出
培训园地/ 文章详情 /

Java 操作DM 导入导出

_ 2023/08/10 1073 0 0

报错处理
报错一
Exception in thread "main" java.lang.UnsatisfiedLinkError: no libeay32 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1122)
at com.dameng.JNIUtil.loadLibrary(JNIUtil.java:200)
at com.dameng.JNIUtil.loadSSLLibrary(JNIUtil.java:182)
at com.dameng.impExp.ImpExpDLL.(ImpExpDLL.java:9)
at com.owndm.function.Dexpimp.main(Dexpimp.java:33)
复制
解决:
缺少所需的lib文件。在 JNIUtil 类中,已经定义了根据系统变量自动获取当前环境变量路径并扫描下面的dll/.so文件。所以,当前报错原因为 DM 库未添加到windows环境变量中。在系统变量path中添加 D:\dmdbms\bin 并重启 IDEA 生效。
可以使用下面代码查看当前环境变量
System.out.println(System.getProperty("java.library.path"));
System.out.println(System.getProperty("dm.library.path"));
复制
实现代码
导入导出级别由expMode/impMode指定:
• 1 tables
• 2 schemas
• 3 full
表级导出
public static void dexpTables(){
String userid = "SYSDBA/SYSDBA@192.168.0.111:5238";
String schemas = "SYSDBA";
String tableName = "t1";
String expFilePath = "D:\dmdbms\jexp_SYSDBA_t1.dmp";
String logFilePath = "D:\dmdbms\jexp_SYSDBA_t1.log";

byte[] var1 = userid.getBytes();  
byte[] var2 = schemas.getBytes();  
byte[] var3 = tableName.getBytes();  
byte[] var4 = expFilePath.getBytes();  
byte[] var5 = logFilePath.getBytes();  

ImpExpDLL.dll_exp_dm(1,var1,var2,var3,var4,var5);  

}
复制
导出文件信息:
PS D:\dmdbms\bin> .\dimp.exe userid=SYSDBA/SYSDBA show=y file=D:\dmdbms\jexp_SYSDBA_t1.dmp
dimp V8
--------------------------------导出文件列表信息--------------------------------共包含1个文件,文件如下:
D:\dmdbms\jexp_SYSDBA_t1.dmp
-------------------------------------------------------------------------------- 导出文件为 TABLES 模式导出,共包含 1 个表:
模式SYSDBA 含有 1 个表,分别为:
t1
复制
表级导入
/**

  • @Description 表级导入

  • @author zhao

  • @Param []

  • @return void

  • @date 2022-6-29 18:05
    */public static void dimpTables(){
    String userid = "SYSDBA/SYSDBA@192.168.0.111:5238";
    String schemas = "SYSDBA";
    String tableName = "t1";
    String expFilePath = "D:\dmdbms\jexp_SYSDBA_t1.dmp";
    String logFilePath = "D:\dmdbms\jimp_SYSDBA_t1.log";

    byte[] var1 = userid.getBytes();
    byte[] var2 = schemas.getBytes();
    byte[] var3 = tableName.getBytes();
    byte[] var4 = expFilePath.getBytes();
    byte[] var5 = logFilePath.getBytes();

    ImpExpDLL.dll_imp_dm(1,var1,var2,var3,var4,var5);
    }
    复制
    模式级导出
    /**

  • @Description 模式级导出

  • @author zhao

  • @Param []

  • @return void

  • @date 2022-6-29 18:19
    */public static void dexpSchemas(){
    String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
    String schemas = "JXP";
    String tableName = "";
    String expFilePath = "D:\dmdbms\jexp_schemas_jxp.dmp";
    String logFilePath = "D:\dmdbms\jexp_schemas_jxp.log";

    byte[] var1 = userid.getBytes();
    byte[] var2 = schemas.getBytes();
    byte[] var3 = tableName.getBytes();
    byte[] var4 = expFilePath.getBytes();
    byte[] var5 = logFilePath.getBytes();

    ImpExpDLL.dll_exp_dm(2,var1,var2,var3,var4,var5);
    }
    复制
    导出文件信息
    PS D:\dmdbms\bin> .\dimp.exe userid=SYSDBA/SYSDBA show=y file=D:\dmdbms\jexp_schemas_jxp.dmp
    dimp V8
    --------------------------------导出文件列表信息--------------------------------共包含1个文件,文件如下:
    D:\dmdbms\jexp_schemas_jxp.dmp
    -------------------------------------------------------------------------------- 导出文件为 SCHEMAS 方式导出,共包含以 下 1 个模式
    模式JXP 含有 2 个表,分别为:
    objects policies
    复制
    模式导入
    /**

  • @Description 模式导入

  • @author zhao

  • @Param []

  • @return void

  • @date 2022-6-29 18:22
    */public static void dimpSchemas(){
    String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
    String schemas = "JXP";
    String tableName = "";
    String expFilePath = "D:\dmdbms\jexp_schemas_jxp.dmp";
    String logFilePath = "D:\dmdbms\jimp_schemas_jxp.log";

    byte[] var1 = userid.getBytes();
    byte[] var2 = schemas.getBytes();
    byte[] var3 = tableName.getBytes();
    byte[] var4 = expFilePath.getBytes();
    byte[] var5 = logFilePath.getBytes();

    ImpExpDLL.dll_imp_dm(2,var1,var2,var3,var4,var5);
    }
    复制
    全库导出
    /**

  • @Description 库级导出

  • @author zhao

  • @Param []

  • @return void

  • @date 2022-6-29 18:33
    */public static void dexpFull(){
    String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
    String schemas = "";
    String tableName = "";
    String expFilePath = "D:\dmdbms\jexp_full.dmp";
    String logFilePath = "D:\dmdbms\jexp_full.log";

    byte[] var1 = userid.getBytes();
    byte[] var2 = schemas.getBytes();
    byte[] var3 = tableName.getBytes();
    byte[] var4 = expFilePath.getBytes();
    byte[] var5 = logFilePath.getBytes();

    ImpExpDLL.dll_exp_dm(3,var1,var2,var3,var4,var5);
    }
    复制
    导出文件信息
    PS D:\dmdbms\bin> .\dimp.exe userid=SYSDBA/SYSDBA show=y file=D:\dmdbms\jexp_full.dmp
    dimp V8
    --------------------------------导出文件列表信息--------------------------------共包含1个文件,文件如下:
    D:\dmdbms\jexp_full.dmp
    -------------------------------------------------------------------------------- 导出文件为 FULL 方式导出,共包含以下 4 个模式
    模式JXP 含有 2 个表,分别为:
    objects policies
    模式TEST 含有 3 个表,分别为:
    t1 objects policies
    模式TEST_1 含有 0 个表,分别为:

模式SYSDBA 含有 4 个表,分别为:
LOG_COMMIT t2 test t1
复制
全库导入
/**

  • @Description 库级导入

  • @author zhao

  • @Param []

  • @return void

  • @date 2022-6-29 18:33
    */public static void dimpFull(){
    String userid = "SYSDBA/SYSDBA@192.168.0.112:5240";
    String schemas = "";
    String tableName = "";
    String expFilePath = "D:\dmdbms\jexp_full.dmp";
    String logFilePath = "D:\dmdbms\jimp_full11.log";

    byte[] var1 = userid.getBytes();
    byte[] var2 = schemas.getBytes();
    byte[] var3 = tableName.getBytes();
    byte[] var4 = expFilePath.getBytes();
    byte[] var5 = logFilePath.getBytes();

    ImpExpDLL.dll_imp_dm(3,var1,var2,var3,var4,var5);
    }
    复制
    附件
    附件一
    导入导出完整测试类
    package com.owndm.function;

import com.dameng.JNIUtil;
import com.dameng.impExp.ImpExpDLL;

import static jdk.nashorn.internal.objects.Global.print;
import static sun.misc.Version.println;

/**

  • @ClassName Dexpimp

  • @description: 达梦数据库中使用JAVA方式实现导入导出$

  • @author: zhao

  • @create: 2022-06-29 10:21

  • @Version 1.0
    **/public class Dexpimp {

    public static void main(String[] args) {
    // System.out.println(System.getProperty("os.name"));
    // System.out.println(System.getProperty("java.library.path"));
    // System.out.println(System.getProperty("dm.library.path"));
    dimpFull();
    }

    /**

    • @Description 表级导出

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 17:26
      */ public static void dexpTables(){
      String userid = "SYSDBA/SYSDBA@192.168.0.111:5238";
      String schemas = "SYSDBA";
      String tableName = "t1";
      String expFilePath = "D:\dmdbms\jexp_SYSDBA_t1.dmp";
      String logFilePath = "D:\dmdbms\jexp_SYSDBA_t1.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_exp_dm(1,var1,var2,var3,var4,var5);
      }

    /**

    • @Description 表级导入

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 18:05
      */ public static void dimpTables(){
      String userid = "SYSDBA/SYSDBA@192.168.0.111:5238";
      String schemas = "SYSDBA";
      String tableName = "t1";
      String expFilePath = "D:\dmdbms\jexp_SYSDBA_t1.dmp";
      String logFilePath = "D:\dmdbms\jimp_SYSDBA_t1.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_imp_dm(1,var1,var2,var3,var4,var5);
      }

    /**

    • @Description 模式级导出

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 18:19
      */ public static void dexpSchemas(){
      String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
      String schemas = "JXP";
      String tableName = "";
      String expFilePath = "D:\dmdbms\jexp_schemas_jxp.dmp";
      String logFilePath = "D:\dmdbms\jexp_schemas_jxp.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_exp_dm(2,var1,var2,var3,var4,var5);
      }

    /**

    • @Description 模式导入

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 18:22
      */ public static void dimpSchemas(){
      String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
      String schemas = "JXP";
      String tableName = "";
      String expFilePath = "D:\dmdbms\jexp_schemas_jxp.dmp";
      String logFilePath = "D:\dmdbms\jimp_schemas_jxp.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_imp_dm(2,var1,var2,var3,var4,var5);
      }

    /**

    • @Description 库级导出

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 18:33
      */ public static void dexpFull(){
      String userid = "SYSDBA/SYSDBA@LOCALHOST:5238";
      String schemas = "";
      String tableName = "";
      String expFilePath = "D:\dmdbms\jexp_full.dmp";
      String logFilePath = "D:\dmdbms\jexp_full.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_exp_dm(3,var1,var2,var3,var4,var5);
      }

    /**

    • @Description 库级导入

    • @author zhao

    • @Param []

    • @return void

    • @date 2022-6-29 18:33
      */ public static void dimpFull(){
      String userid = "SYSDBA/SYSDBA@192.168.0.112:5240";
      String schemas = "";
      String tableName = "";
      String expFilePath = "D:\dmdbms\jexp_full.dmp";
      String logFilePath = "D:\dmdbms\jimp_full11.log";

      byte[] var1 = userid.getBytes();
      byte[] var2 = schemas.getBytes();
      byte[] var3 = tableName.getBytes();
      byte[] var4 = expFilePath.getBytes();
      byte[] var5 = logFilePath.getBytes();

      ImpExpDLL.dll_imp_dm(3,var1,var2,var3,var4,var5);
      }

}
复制
附件二
ImpExpDLL 类
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.dameng.impExp;

import com.dameng.JNIUtil;

public class ImpExpDLL {
static {
JNIUtil.loadSSLLibrary();
JNIUtil.loadLibrary(JNIUtil.isWindows() ? "zlib" : "z");
JNIUtil.loadDmLibrarys("dmdpi");
JNIUtil.loadDmLibrarys("disql_dll");
JNIUtil.loadDmLibrarys(JNIUtil.isWindows() ? "dmfldr_dll" : "dmfldr");
JNIUtil.loadDmLibrarys("dmp_dll");
JNIUtil.loadDmLibrarys("dmp_disql_dll_java");
}

public ImpExpDLL() {  
}  

public static native int dll_exp_dm(int var0, byte[] var1, byte[] var2, byte[] var3, byte[] var4, byte[] var5);  

public static native int dll_imp_dm(int var0, byte[] var1, byte[] var2, byte[] var3, byte[] var4, byte[] var5, byte[] var6);  

public static int dll_imp_dm(int impMode, byte[] userid, byte[] schemaName, byte[] tableName, byte[] impFilePath, byte[] logFilePath) {  
    return dll_imp_dm(impMode, userid, schemaName, tableName, impFilePath, logFilePath, (byte[])null);  
}  

public static native int dll_exec_sql_file(byte[] var0, byte[] var1, byte[] var2);  

}
复制
附件三
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.dameng;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class JNIUtil {
private static final Map<String, String> LOAD_LIB_MAP = new HashMap();
public static final String DM_LIBRARY_PATH = "dm.library.path";
public static final String JNI_AUDIT_DLL = "AuditDll";
public static final String JNI_CONNECT_DLL = "ConnectDLL";
public static final String JNI_DRMAN_DLL = "DrmanDLL";
public static final String JNI_CRYPT_DLL = "CryptDll";
public static final String JNI_DWMON_DLL = "DwMonDLL";
public static final String JNI_LICREAD_DLL = "LicReadDll";
public static final String JNI_PARA_DLL = "ParaDLL";
public static final String JNI_CSSM_DLL = "CssMonDLL";
public static final String JNI_ASM_DLL = "DmASMDLL";
public static final String JNI_INSTANCE_DLL = "Instance";
public static final String JNI_IMPEXP_DLL = "ImpExpDLL";
public static final String JNI_LOGMNR_DLL = "LogmnrDll";
public static final int OS_UNKNOW = -1;
public static final int OS_WINDOWS = 1;
public static final int OS_LINUX = 2;
public static final int OS_SOLARIS = 3;
public static final int OS_AIX = 4;
public static final int OS_HP_UX = 5;
public static final int OS_FREE_BSD = 6;
public static final int OS_MAC = 7;
public static final int CURRENT_OS = getOS();
public static final String EMPTY = "";

public JNIUtil() {  
}  

public static int getOS() {  
    String osname = getOSName();  
    if (osname.startsWith("Win")) {  
        return 1;  
    } else if (osname.startsWith("Linux")) {  
        return 2;  
    } else if (osname.startsWith("AIX")) {  
        return 4;  
    } else if (!osname.startsWith("Solaris") && !osname.startsWith("Sun")) {  
        if (osname.startsWith("HP-UX")) {  
            return 5;  
        } else if (osname.startsWith("FreeBSD")) {  
            return 6;  
        } else {  
            return osname.startsWith("Mac OS") ? 7 : -1;  
        }  
    } else {  
        return 3;  
    }  
}  

public static String getOSName(int osType) {  
    String value = "";  
    switch (osType) {  
        case 1:  
            value = "Windows";  
            break;            case 2:  
            value = "Linux";  
            break;            case 3:  
            value = "Solaris|Sun";  
            break;            case 4:  
            value = "AIX";  
            break;            case 5:  
            value = "HP-UX";  
    }  

    return value;  
}  

public static boolean isWindows() {  
    return getOS() == 1;  
}  

public static String getOSName() {  
    return System.getProperty("os.name");  
}  

public static String trimToEmpty(String str) {  
    return str == null ? "" : str.trim();  
}  

public static boolean isEmpty(String str) {  
    return str == null || str.length() == 0;  
}  

public static boolean isNotEmpty(String str) {  
    return str != null && str.length() > 0;  
}  

public static void loadSSLLibrary() {  
    List<String> sslLibNameList = new ArrayList();  
    if (getOS() == 1) {  
        sslLibNameList.add("libeay32");  
        sslLibNameList.add("ssleay32");  
    } else {  
        sslLibNameList.add("crypto");  
        sslLibNameList.add("ssl");  
    }  

    for(int i = 0; i < sslLibNameList.size(); ++i) {  
        loadLibrary((String)sslLibNameList.get(i));  
    }  

}  

public static void loadLibrary(String libname) {  
    if (!LOAD_LIB_MAP.containsKey(libname)) {  
        String libraryPath = trimToEmpty(System.getProperty("dm.library.path"));  
        if (isEmpty(libraryPath)) {  
            System.loadLibrary(libname);  
            LOAD_LIB_MAP.put(libname, libname);  
        } else {  
            File libFle = new File(libraryPath, isWindows() ? libname + ".dll" : "lib" + libname + ".so");  
            System.load(libFle.getPath());  
            LOAD_LIB_MAP.put(libname, libFle.getPath());  
        }  

    }  
}  

public static void loadDmLibrarys(String libname) {  
    loadDmLibrarys(libname, (String[])null);  
}  

public static void loadDmLibrarys(String libname, String[] excludeLibNames) {  
    String libraryPath = trimToEmpty(System.getProperty("dm.library.path"));  
    if (isEmpty(libraryPath)) {  
        libraryPath = trimToEmpty(System.getProperty("java.library.path"));  
        if (isEmpty(libraryPath)) {  
            loadLibrary(libname);  
            return;            }  
    }  

    File rootDirFile = new File(libraryPath);  
    if (!rootDirFile.exists()) {  
        loadLibrary(libname);  
    } else {  
        List<String> libNameList = new ArrayList();  
        File[] var8;  
        int var7 = (var8 = rootDirFile.listFiles()).length;  

        for(int var6 = 0; var6 < var7; ++var6) {  
            File tmpFile = var8[var6];  
            String fileName = tmpFile.getName();  
            if (isWindows()) {  
                if (fileName.startsWith("d") && fileName.endsWith(".dll")) {  
                    libNameList.add(fileName.substring(0, fileName.length() - 4));  
                }  
            } else if (fileName.startsWith("libd") && fileName.endsWith(".so")) {  
                libNameList.add(fileName.substring(3, fileName.length() - 3));  
            }  
        }  

        if (libNameList.size() == 0) {  
            loadLibrary(libname);  
        } else {  
            List<String> libNameList = sortLibNameList(libNameList);  
            if (excludeLibNames != null) {  
                for(int i = 0; i < excludeLibNames.length; ++i) {  
                    libNameList.remove(excludeLibNames[i]);  
                }  
            }  

            while(true) {  
                boolean finish = false;  
                List<String> loadedLibNameList = new ArrayList();  
                Iterator var17 = libNameList.iterator();  

                while(var17.hasNext()) {  
                    String tmpLibName = (String)var17.next();  

                    try {  
                        loadLibrary(tmpLibName);  
                        if (tmpLibName.equals(libname)) {  
                            finish = true;  
                            break;                            }  

                        loadedLibNameList.add(tmpLibName);  
                    } catch (Throwable var10) {  
                    }  
                }  

                if (finish) {  
                    break;  
                }  

                try {  
                    loadLibrary(libname);  
                    break;                    } catch (Throwable var11) {  
                    if (loadedLibNameList.size() == 0) {  
                        throw var11;  
                    }  

                    libNameList.removeAll(loadedLibNameList);  
                }  
            }  

        }  
    }  
}  

public static List<String> sortLibNameList(List<String> libNameList) {  
    List<String> newList = new ArrayList();  
    List<String> tmpList = getLibNamesForFix(isWindows());  
    Iterator var4 = tmpList.iterator();  

    while(var4.hasNext()) {  
        String tmpStr = (String)var4.next();  
        boolean flag = libNameList.remove(tmpStr);  
        if (flag && !newList.contains(tmpStr)) {  
            newList.add(tmpStr);  
        }  
    }  

    for(int i = 0; i < libNameList.size(); ++i) {  
        if (!newList.contains(libNameList.get(i))) {  
            newList.add((String)libNameList.get(i));  
        }  
    }  

    removeDuplicateData(newList);  
    newList.removeAll(getLibNamesForNotLoad(isWindows()));  
    return newList;  
}  

public static List<String> getLibNamesForFix(boolean isWin) {  
    List<String> list = new ArrayList();  
    list.add("dmcvt");  
    list.add("dmmc");  
    list.add("dmutl");  
    list.add("dmelog");  
    list.add("dmmsg");  
    list.add("dmos");  
    list.add("dmreadline");  
    list.add("dmvtdsk");  
    list.add("dmcpr");  
    list.add("dmde");  
    list.add("dmmem");  
    list.add("dmsbtree");  
    list.add("dmasmparse");  
    list.add("dmcalc");  
    list.add("dmclientlex");  
    list.add("dmdcr");  
    list.add("dmmsg_parse");  
    list.add("dmnlssort");  
    list.add("dmstrt");  
    list.add("dmwseg");  
    list.add("dmcyt");  
    list.add("dmmout");  
    list.add("dmsbt");  
    list.add("dmshm");  
    list.add(isWin ? "dmshpldr_dll" : "dmshpldr");  
    list.add("dmcomm");  
    list.add("dmcrypt");  
    list.add("dmcfg");  
    list.add("dmcssmon");  
    list.add("dmdta");  
    list.add("dmfldr_comm");  
    list.add("dmjson");  
    list.add("dmlic");  
    list.add("dmregex");  
    list.add("dmsys");  
    list.add("dmtimer");  
    list.add("dmuthr");  
    list.add("dmxmal");  
    list.add(isWin ? "dcp_dll" : "dmdcp");  
    list.add("dmbcast");  
    list.add("dmdfs");  
    list.add("dmdpi");  
    list.add("dmfil");  
    list.add("dmmal");  
    list.add("dmraft");  
    list.add("dmrarch");  
    list.add("dmrlog");  
    list.add("dwmon");  
    list.add("dmasm");  
    list.add("dmasmapi");  
    list.add("dmdci");  
    list.add(isWin ? "dmdcs_dll" : "dmdcs");  
    list.add("dmdpc");  
    list.add(isWin ? "dmimon_dll" : "dmimon");  
    list.add("dmimon_dll_java");  
    list.add("dmknl");  
    list.add("dmlnk");  
    list.add("dmnci");  
    list.add("dmstg");  
    list.add("dwatcher");  
    list.add("dmasvr");  
    list.add("dmbtr");  
    list.add("dmdfi");  
    list.add("dmnsort");  
    list.add("dmpara");  
    list.add("dmblb");  
    list.add("dmckpt");  
    list.add(isWin ? "dmcss_dll" : "dmcss");  
    list.add("dmdct");  
    list.add("dmllog");  
    list.add("dmpif");  
    list.add(isWin ? "dmrtr" : "dmrtree");  
    list.add("dmscp");  
    list.add("dmtbl");  
    list.add("dmtrv");  
    list.add("dmhfs");  
    list.add("dmredo");  
    list.add("dmrps");  
    list.add("dmrs");  
    list.add("dmtrx");  
    list.add("dmcti");  
    list.add(isWin ? "dmdbg_dll" : "dmdbg");  
    list.add(isWin ? "dmdrs_dll" : "dmdrs");  
    list.add("dmlogmnr");  
    list.add("dmsess");  
    list.add("dmxa");  
    list.add("dmaud");  
    list.add("dmbcast2");  
    list.add("dmbifun");  
    list.add(isWin ? "dmdras_dll" : "dmdras");  
    list.add("dmrac");  
    list.add("dmbrtsk");  
    list.add(isWin ? "dmdss_dll" : "dmdss");  
    list.add("dmapx");  
    list.add("dmbak2");  
    list.add("dmopt");  
    list.add("dmrep");  
    list.add("dmtrc");  
    list.add("dmapsvc");  
    list.add("dmjob");  
    list.add("dmjschdl");  
    list.add("dmexe");  
    list.add(isWin ? "dmrman_dll" : "dmrman");  
    list.add("dmbldr");  
    return list;  
}  

public static List<String> getLibNamesForNotLoad(boolean isWin) {  
    List<String> list = new ArrayList();  
    list.add("svc_ctl_dll");  
    list.add("dmdpi");  
    list.add("dmsvr");  
    list.add(isWin ? "dmamon_dll" : "dmamon");  
    list.add("dmlogmnr_client");  
    list.add("dmp_disql_dll_java");  
    list.add(isWin ? "dmcpt_dll" : "dmcpt");  
    list.add("disql_dll");  
    list.add(isWin ? "dmfldr_dll" : "dmfldr");  
    list.add("dmfldr_dll_java");  
    list.add(isWin ? "dmjmon_dll" : "dmjmon");  
    list.add("dmoci");  
    list.add("dmoo4o");  
    list.add("dmoopi");  
    list.add("dmp_dll");  
    list.add("dmxai");  
    list.add("dodbc");  
    list.add("doledb");  
    list.add("dmocci");  
    return list;  
}  

private static void removeDuplicateData(List<String> libNameList) {  
    List<String> tmpList = new ArrayList();  

    for(int i = 0; i < libNameList.size(); ++i) {  
        if (!tmpList.contains(libNameList.get(i))) {  
            tmpList.add((String)libNameList.get(i));  
        }  
    }  

    libNameList.clear();  
    libNameList.addAll(tmpList);  
}  

public static void main(String[] args) {  
}  

}

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服