cmd里面执行Java命令时,如果要运行的java程序需要使用第三方运行库,如数据库驱动等
应该如何加入相应的包使其运行?公司其他部门需要检查工作,让把数据库拷贝一份,现在做的项目是SQLSERVER-2000的,要求备份出来的
是要insert into的字符串格式的.sql文件,2000不支持导出这种格式的,自己写了个Java程序已解决。
但想留着以后使用,改成GUI形式的了,在MyEclipse下使用可以.现在是用Eclipse导出成Jar包之后,执行jar包时候不能找到数据库驱动类.
文件结构:d:\OutputData/OutputData.jar
d:\OutputData/lib/*.jar(匹配的是常用的数据库驱动jar包--SQL2000,MYSQL,ORACLE等)。
我用命令行调用D:\OutputData> java -classpath "lib/*.jar" -jar OutputData.jar
执行Java程序之后填入必要的参数,然后查询数据库,出现Exception:不能找到SQLSERVER2000的驱动程序(类),
问题是如何使用java命令让程序执行的时候把lib/*.jar里的jar包加入其运行环境?
应该如何加入相应的包使其运行?公司其他部门需要检查工作,让把数据库拷贝一份,现在做的项目是SQLSERVER-2000的,要求备份出来的
是要insert into的字符串格式的.sql文件,2000不支持导出这种格式的,自己写了个Java程序已解决。
但想留着以后使用,改成GUI形式的了,在MyEclipse下使用可以.现在是用Eclipse导出成Jar包之后,执行jar包时候不能找到数据库驱动类.
文件结构:d:\OutputData/OutputData.jar
d:\OutputData/lib/*.jar(匹配的是常用的数据库驱动jar包--SQL2000,MYSQL,ORACLE等)。
我用命令行调用D:\OutputData> java -classpath "lib/*.jar" -jar OutputData.jar
执行Java程序之后填入必要的参数,然后查询数据库,出现Exception:不能找到SQLSERVER2000的驱动程序(类),
问题是如何使用java命令让程序执行的时候把lib/*.jar里的jar包加入其运行环境?
File file = new File("lib/commons-lang-2.3.jar");
if (file.exists()) {
URLClassLoader classLoader = URLClassLoader
.newInstance(new URL[] { file.toURI().toURL() });
Class<StringUtils> clazz = (Class<StringUtils>) classLoader
.loadClass("org.apache.commons.lang.StringUtils");
System.out.println(clazz);
System.out.println(StringUtils.isNotBlank(""));
Method method = clazz.getMethod("toStr", String.class);
System.out.println(method);
Object ins = clazz.newInstance();
Object ret = method.invoke(ins, "123");
System.out.println(ret);
}批注:cp参数是不支持通配符的。java -cp ./lib/test1.jar:./lib/test2.jar -jar OutputData.jar 使用这种形式。
D:\OutputData>java -cp OutputData.jar;lib\a.jar;lib\b.jar;lib\c.jar your.MainClass最好的做法是在打包时,在Manifest里指定Class-Path
还真是麻烦.又想了个办法.
是不是可以用bat批处理命令,
.>set CLASSPATH %CLASSPATH%;lib;
.>java -jar OutputData.jar
还真是麻烦.又想了个办法.
是不是可以用bat批处理命令,
.>set CLASSPATH=%CLASSPATH%;lib;
.>java -jar OutputData.jar