2014-08-27 29 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 
相關問題