当前位置:  开发笔记 > 编程语言 > 正文

BAT文件创建Java CLASSPATH

如何解决《BAT文件创建JavaCLASSPATH》经验,为你挑选了4个好方法。

我想在Windows上分发用Java编写的命令行应用程序.

我的应用程序作为zip文件分发,它有一个lib目录条目,其中包含调用我的主类所需的.jar文件.目前,对于Unix环境,我有一个shell脚本,它通过附加lib目录中的所有文件来调用带有CLASSPATH的java命令.

我怎么写具有类似功能的.BAT文件?什么是Windows世界中的find Unix命令的等价物?



1> Henry B..:

您想在批处理脚本中使用for循环

 @echo off
 setLocal EnableDelayedExpansion
 set CLASSPATH="
 for /R ./lib %%a in (*.jar) do (
   set CLASSPATH=!CLASSPATH!;%%a
 )
 set CLASSPATH=!CLASSPATH!"
 echo !CLASSPATH!

当我在寻找一个批处理脚本来遍历目录中的所有文件时,这真的帮助了我,它是关于删除文件但它非常有用.

用于删除空目录的单行批处理脚本

说实话,使用Jon的答案,如果所有文件都在一个目录中,那么这可能会更好,但这可能会帮助你在另一个时间.



2> Jon Skeet..:

你为什么要用find?想必你提前知道你的jar文件需要的所有库,为什么不列出它们呢?

或者,您可以随时使用-Djava.ext.dirs=lib并让它以这种方式获取所有内容.



3> basszero..:

从6.0开始,Java支持通配符类路径.

Java命令行类路径语法



4> Eric Sorense..:

如果您希望CLASSPATH设置保留在脚本之外并且未使用/ V启动shell,则可以执行以下操作:

@echo off
FOR /R ./lib %%a in (*.jar) DO CALL :AddToPath %%a
ECHO %CLASSPATH%
GOTO :EOF

:AddToPath
SET CLASSPATH=%1;%CLASSPATH%
GOTO :EOF

当您在命令行上玩游戏时,可用于设置环境.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有