这可能类似于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文件以便能够运行该程序。谢谢
答案 0 :(得分:1)
请帮助了解如何正确包含这些jar文件以便能够运行程序
不要从这里开始。你应该:
Main-class
条目中命名主类。Class-Path
条目的META-INF / MANIFEST.MF文件中命名外部JAR文件。请注意,这只允许您将相对路径名用于其他JAR文件,因此您必须使用应用程序JAR文件分发它们。java -jar
选项。在这种情况下,根本不需要批处理文件。
答案 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