如何在批处理文件中包含JAR文件

时间:2018-06-04 03:54:07

标签: java batch-file jar

这可能类似于THIS,但我找不到写在那里的解决方案

问题是,我通过批处理文件运行java应用程序,需要包含一些jar文件。我找不到办法做到这一点

档案位置: (java类) d:\工作空间\ SRC \ MyClass.java

(需要罐子) d:\工作空间\ SRC \ lib中\ opencsv-4.1.jar

d:\工作空间\ SRC \ lib中\共lang3.jar

bat文件的当前代码:

@echo off
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;D:workspace\src
set CLASSPATH=%CLASSPATH%;\lib\opencsv-4.1.jar
set CLASSPATH=%CLASSPATH%;\lib\common-lang3.jar
set ARGS=one two

javac D:workspace\src\MyClass.java
java -cp %CLASSPATH% MyClass %ARGS%

pause

请帮助您了解如何正确包含这些jar文件以便能够运行该程序。谢谢

2 个答案:

答案 0 :(得分:1)

  

请帮助了解如何正确包含这些jar文件以便能够运行程序

不要从这里开始。你应该:

  1. 将您的应用程序部署为JAR文件,在META-INF / MANIFEST.MF文件的Main-class条目中命名主类。
  2. Class-Path条目的META-INF / MANIFEST.MF文件中命名外部JAR文件。请注意,这只允许您将相对路径名用于其他JAR文件,因此您必须使用应用程序JAR文件分发它们。
  3. 使用java -jar选项。
  4. 在这种情况下,根本不需要批处理文件。

答案 1 :(得分:0)

您的脚本文件中的相对和绝对路径无效...

特别是脚本中的相对路径...... java文件位置必须是相对路径或绝对路径。

因为设置了CLASSPATH变量,所以不需要使用'-cp'标志。 因此,如果您的jar路径是D卷中工作空间下的lib目录。

脚本如下所示;

@echo off
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;D:\workspace\src
set CLASSPATH=%CLASSPATH%;D:\workspace\lib\opencsv-4.1.jar
set CLASSPATH=%CLASSPATH%;D:\workspace\lib\common-lang3.jar
set ARGS=one two

cd D:\workspace\src\
javac MyClass.java
java MyClass %ARGS%

pause