Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么“编辑到清单文件”提供了类路径不提供的解决方案_Java_Classpath_Manifest - Fatal编程技术网

Java 为什么“编辑到清单文件”提供了类路径不提供的解决方案

Java 为什么“编辑到清单文件”提供了类路径不提供的解决方案,java,classpath,manifest,Java,Classpath,Manifest,我正在编写一个短实用程序,它在远程Oracle实例上执行短任务。该实用工具使用在ojdbc6.jar中找到的Oracle jdbc驱动程序 Oracle jar正确地包含在我的类路径中。当我将项目导出到jar并使用“java-jar”在命令行上运行jar时,我得到: 将Oracle jar移动到与可运行jar文件相同的目录后,我更改了清单文件,将Oracle jar包含在类路径中。这解决了问题,我的罐子运行良好 有人能解释为什么在我的类路径中包含Oracle jar并不能解决问题,为什么编辑清单

我正在编写一个短实用程序,它在远程Oracle实例上执行短任务。该实用工具使用在ojdbc6.jar中找到的Oracle jdbc驱动程序

Oracle jar正确地包含在我的类路径中。当我将项目导出到jar并使用“java-jar”在命令行上运行jar时,我得到:

将Oracle jar移动到与可运行jar文件相同的目录后,我更改了清单文件,将Oracle jar包含在类路径中。这解决了问题,我的罐子运行良好

有人能解释为什么在我的类路径中包含Oracle jar并不能解决问题,为什么编辑清单文件能解决问题

谢谢

来自Sun(Oracle)文档中的
java-jar
命令:

执行封装在JAR文件中的程序。第一个论点是 JAR文件的名称,而不是启动类名。为了 若要使用此选项,JAR文件的清单必须包含一行 主类的形式:classname。在这里,classname标识 具有公共静态void main(字符串[]args)方法的类 作为应用程序的起点。请参阅Jar工具 参考页面和Java教程的Jar线索以获取信息 关于使用Jar文件和Jar文件清单当您使用此 选项,JAR文件是所有用户类和其他用户类的源 类路径设置被忽略

来自Sun(Oracle)关于
java-jar
命令的文档:

执行封装在JAR文件中的程序。第一个论点是 JAR文件的名称,而不是启动类名。为了 若要使用此选项,JAR文件的清单必须包含一行 主类的形式:classname。在这里,classname标识 具有公共静态void main(字符串[]args)方法的类 作为应用程序的起点。请参阅Jar工具 参考页面和Java教程的Jar线索以获取信息 关于使用Jar文件和Jar文件清单当您使用此 选项,JAR文件是所有用户类和其他用户类的源 类路径设置被忽略

Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)