2014-08-27 26 views
1

这里是我的批处理文件代码如何引用在我的批处理文件中的所有外部JAR文件

@echo off 
set "CLASSPATH=%CLASSPATH%;\solr-4.6.1\solr-4.6.1\dist\solrj-lib\httpcore-4.2.5.jar;\solr-4.6.1\solr-4.6.1\example\solr-webapp\webapp\WEB-INF\lib\httpmime-4.2.6.jar;\solr-4.6.1\solr-4.6.1\dist\solrj-lib\httpclient-4.2.6.jar; 
\solr-4.6.1\solr-4.6.1\dist\solrj-lib\jcl-over-slf4j-1.6.6.jar;\solr-4.6.1\solr-4.6.1\dist\solrj-lib\log4j-1.2.16.jar;\solr-4.6.1\solr-4.6.1\dist\solrj-lib\slf4j-api-1.6.6.jar; 
\solr-solrj-4.0.0.jar\solr-solrj-4.0.0.jar;\solr-4.6.1\solr-4.6.1\dist\solrj-lib\slf4j-log4j12-1.6.6.jar;" 
cp= 

javac -cp "%cp%" SolrjPopulator.java 
java -cp "%cp%" SolrjPopulator 
pause 

后,我运行该批处理文件Java编译器没有找到jar文件。

回答

0
@echo off 
set "CLASSPATH=%CLASSPATH%;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\httpcore-4.2.5.jar;.\solr-4.6.1\solr-4.6.1\example\solr-webapp\webapp\WEB-INF\lib\httpmime-4.2.6.jar;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\httpclient-4.2.6.jar;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\jcl-over-slf4j-1.6.6.jar;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\log4j-1.2.16.jar;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\slf4j-api-1.6.6.jar;.\solr-solrj-4.0.0.jar\solr-solrj-4.0.0.jar;.\solr-4.6.1\solr-4.6.1\dist\solrj-lib\slf4j-log4j12-1.6.6.jar;" 


javac -cp "%CLASSPATH%" SolrjPopulator.java 
java -cp "%CLASSPATH%" SolrjPopulator 
pause 

\点到驱动器根目录的路径 - 你最好.\。还有就是在类路径定义一个新的生产线。 JAVA已使用%CP%变量而不是%CLASSPATH%。而cp=不是一个命令,可能会产生一个错误。

,或者如果你不想要列表中手动所有的罐子:

@echo off 

set "solr_location=.\solr-4.6.1" 

setlocal enableDelayedExpansion 
pushd %solr_location% 
for %%a in (*.txt) do (
    if not defined classpath (
     set "classpath=%%~a" 
    else (
     set "classpath=!classpath!;%%~a" 
    ) 
) 
set "classpath=!classpath!;" 
popd 

javac -cp "%CLASSPATH%" SolrjPopulator.java 
java -cp "%CLASSPATH%" SolrjPopulator 
endlocal 
pause 
相关问题