这是我的批处理文件代码
@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 :(得分: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