我想将我的Java程序作为JAR文件分发。我的程序需要Oracle JDBC驱动程序,它也是作为JAR文件交付的。但是java -jar命令只接受一个JAR文件。因此,我必须合并这两个JAR文件。这是很容易做到的,但我是否可以这样做呢?是否允许将我的程序作为包含Oracle JDBC JAR文件内容的JAR文件分发?
发布于 2012-07-10 09:48:14
但是java -jar命令只接受一个JAR文件。
这不对。您的JAR文件可以包含一个带有类路径:条目的Manifest,它可以命名为Oracle文件。
发布于 2012-07-10 10:00:40
是的,您可以将Oracle JDBC驱动程序打包到jar文件中,只要您不修改jar文件或jar文件中的任何文件。在某些库中,还需要将许可文件作为发行版的一部分--您需要阅读相关jar文件的许可证详细信息。通用的甲骨文发行许可证条款可以在这里找到http://www.oracle.com/technetwork/licenses/distribution-license-152002.html
关于您问题的java -jar部分,请参阅以下解释:
要启动可执行的jar文件,我们使用命令java -jar executable.jar
JVM将查看jar文件的清单,并执行在jar文件中指定的main类的主要方法。应用程序的任何依赖项都可以通过类路径设置来满足--我们不需要在启动应用程序时指定所有依赖jar文件。
有不同的类路径设置方法:
set CLASSPATH=app1.jar;app2.jar;driver.jar;和Unix/Linux export CLASSPATH=app1.jar:app2.jar:app3.jar上)。当您控制系统变量时,这种方法很有用,并且它是受控制的环境,因此此方法不适合于将应用程序分发给客户端。-classpath选项来实现,例如,java -classpath app1.jar;app2.jar;driver.jar -jar executable.jar,这种方法对于快速测试很有用,如果要引用的jar文件的数量较少,则可以使用Class-Path: app1.jar app2.jar driver.jar注意:请在类路径条目中使用适当的分隔符,例如在windows上,;是类路径条目的分隔符,unix :是分隔符,在清单类路径中,您可以使用空格作为分隔符。同样,在提到app1.jar/app2.jar/driver.jar时,您必须使用jar文件的绝对路径或相对路径。
https://stackoverflow.com/questions/11410636
复制相似问题