由于“输入行太长”,在 Windows 上运行 .bat 文件时出现问题

Posted

技术标签:

【中文标题】由于“输入行太长”,在 Windows 上运行 .bat 文件时出现问题【英文标题】:Problem running .bat file on Windows due to "input line is too long" 【发布时间】:2009-10-01 12:36:52 【问题描述】:

我正在使用 Windows 并且有一个批处理文件(内容附在下面),我在尝试运行 Java 类之前在其中构建了一个类路径。不幸的是,类路径相当大,文件最终约为 14kb。当我运行它时,我收到“输入行太长”错误。我在其他地方读过最大。 env 变量的大小是 8kb,但我似乎不太可能减小类路径的大小以适应它。我还能做些什么来让它运行吗?

谢谢, 尼克


echo off
subst z: C:\Users\ned24\.m2\repository
set CLASSPATH=c:\workspace-eclipse\lensfield-pom\lensfield-build\target\classes;%CLASSPATH%
set CLASSPATH=z:\wwmm\atom-archiver\0.1\atom-archiver-0.1.jar;%CLASSPATH%
set CLASSPATH=z:\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;%CLASSPATH%
set CLASSPATH=z:\commons-io\commons-io\1.4\commons-io-1.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\freemarker\freemarker\2.3.9\freemarker-2.3.9.jar;%CLASSPATH%
set CLASSPATH=z:\log4j\log4j\1.2.13\log4j-1.2.13.jar;%CLASSPATH%
set CLASSPATH=z:\xom\xom\1.1\xom-1.1.jar;%CLASSPATH%
set CLASSPATH=z:\xerces\xmlParserAPIs\2.6.2\xmlParserAPIs-2.6.2.jar;%CLASSPATH%
set CLASSPATH=z:\xerces\xercesImpl\2.6.2\xercesImpl-2.6.2.jar;%CLASSPATH%
set CLASSPATH=z:\xalan\xalan\2.7.0\xalan-2.7.0.jar;%CLASSPATH%
set CLASSPATH=z:\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;%CLASSPATH%
set CLASSPATH=z:\jaxen\jaxen\1.1-beta-8\jaxen-1.1-beta-8.jar;%CLASSPATH%
set CLASSPATH=z:\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;%CLASSPATH%
set CLASSPATH=z:\jdom\jdom\1.0\jdom-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\cdk\cdk-pure\1.2.1\cdk-pure-1.2.1.jar;%CLASSPATH%
set CLASSPATH=z:\cml\cifxml\1.4-SNAPSHOT\cifxml-1.4-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\jgrapht\jgrapht\0.6.0\jgrapht-0.6.0.jar;%CLASSPATH%
set CLASSPATH=z:\cml\jumbo-converters\0.2-SNAPSHOT\jumbo-converters-0.2-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\cml\jumbo\5.5.1-SNAPSHOT\jumbo-5.5.1-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\cml\cmlxom\2.5.1-SNAPSHOT\cmlxom-2.5.1-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\junit\junit\3.8\junit-3.8.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\commons\commons-cli\2.0-SNAPSHOT\commons-cli-2.0-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\cml\jumbo-units\0.2-SNAPSHOT\jumbo-units-0.2-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\org\lensfield\lensfield-share\0.1-SNAPSHOT\lensfield-share-0.1-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-embedder\3.0-alpha-2\maven-embedder-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-core\3.0-alpha-2\maven-core-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-lifecycle\3.0-alpha-2\maven-lifecycle-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-utils\1.5.6\plexus-utils-1.5.6.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-reporting-api\3.0-alpha-2\maven-reporting-api-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\doxia\doxia-sink-api\1.0-alpha-9\doxia-sink-api-1.0-alpha-9.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-model\3.0-alpha-2\maven-model-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-compat\3.0-alpha-2\maven-compat-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-container-default\1.0-beta-3.0.5\plexus-container-default-1.0-beta-3.0.5.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-classworlds\1.3\plexus-classworlds-1.3.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\xbean\xbean-reflect\3.4\xbean-reflect-3.4.jar;%CLASSPATH%
set CLASSPATH=z:\commons-logging\commons-logging-api\1.1\commons-logging-api-1.1.jar;%CLASSPATH%
set CLASSPATH=z:\com\google\code\google-collections\google-collect\snapshot-20080530\google-collect-snapshot-20080530.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-component-annotations\1.0-beta-3.0.5\plexus-component-annotations-1.0-beta-3.0.5.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-provider-api\1.0-beta-4\wagon-provider-api-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-plugin-api\3.0-alpha-2\maven-plugin-api-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-project\3.0-alpha-2\maven-project-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-interpolation\1.1\plexus-interpolation-1.1.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\woodstox\wstx-asl\3.2.6\wstx-asl-3.2.6.jar;%CLASSPATH%
set CLASSPATH=z:\stax\stax-api\1.0\stax-api-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\org\sonatype\spice\model-builder\1.3\model-builder-1.3.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-project-builder\3.0-alpha-2\maven-project-builder-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\commons-cli\commons-cli\1.0\commons-cli-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-interactivity-api\1.0-alpha-6\plexus-interactivity-api-1.0-alpha-6.jar;%CLASSPATH%
set CLASSPATH=z:\org\sonatype\plexus\plexus-plugin-manager\1.0-alpha-1\plexus-plugin-manager-1.0-alpha-1.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-plexus\1.0.0-alpha-2\mercury-plexus-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-repo-remote-m2\1.0.0-alpha-2\mercury-repo-remote-m2-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-repo-api\1.0.0-alpha-2\mercury-repo-api-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-artifact\1.0.0-alpha-2\mercury-artifact-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\codehaus\plexus\plexus-lang\1.1\plexus-lang-1.1.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-transport-api\1.0.0-alpha-2\mercury-transport-api-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-crypto-api\1.0.0-alpha-2\mercury-crypto-api-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-logging\1.0.0-alpha-2\mercury-logging-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-external\1.0.0-alpha-2\mercury-external-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-event\1.0.0-alpha-2\mercury-event-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-md-shared\1.0.0-alpha-2\mercury-md-shared-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-util\1.0.0-alpha-2\mercury-util-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-crypto-basic\1.0.0-alpha-2\mercury-crypto-basic-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\bouncycastle\bcprov-jdk15\140\bcprov-jdk15-140.jar;%CLASSPATH%
set CLASSPATH=z:\bouncycastle\bcpg-jdk15\140\bcpg-jdk15-140.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-transport-http\1.0.0-alpha-2\mercury-transport-http-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\mortbay\jetty\jetty-client\6.1.12\jetty-client-6.1.12.jar;%CLASSPATH%
set CLASSPATH=z:\org\mortbay\jetty\jetty-sslengine\6.1.12\jetty-sslengine-6.1.12.jar;%CLASSPATH%
set CLASSPATH=z:\org\mortbay\jetty\jetty\6.1.12\jetty-6.1.12.jar;%CLASSPATH%
set CLASSPATH=z:\org\mortbay\jetty\jetty-util\6.1.12\jetty-util-6.1.12.jar;%CLASSPATH%
set CLASSPATH=z:\org\mortbay\jetty\servlet-api-2.5\6.1.12\servlet-api-2.5-6.1.12.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-repo-local-m2\1.0.0-alpha-2\mercury-repo-local-m2-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-repo-virtual\1.0.0-alpha-2\mercury-repo-virtual-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-repo-cache-fs\1.0.0-alpha-2\mercury-repo-cache-fs-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\mercury\mercury-md-sat\1.0.0-alpha-2\mercury-md-sat-1.0.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\sat4j\org.sat4j.core\2.0.4\org.sat4j.core-2.0.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\sat4j\org.sat4j.pb\2.0.4\org.sat4j.pb-2.0.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\slf4j\slf4j-jdk14\1.5.3\slf4j-jdk14-1.5.3.jar;%CLASSPATH%
set CLASSPATH=z:\org\slf4j\slf4j-api\1.5.0\slf4j-api-1.5.0.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-mercury\3.0-alpha-2\maven-mercury-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\maven-toolchain\3.0-alpha-2\maven-toolchain-3.0-alpha-2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-http-lightweight\1.0-beta-4\wagon-http-lightweight-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-http-shared\1.0-beta-4\wagon-http-shared-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\nekohtml\xercesMinimal\1.9.6.2\xercesMinimal-1.9.6.2.jar;%CLASSPATH%
set CLASSPATH=z:\nekohtml\nekohtml\1.9.6.2\nekohtml-1.9.6.2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-ssh\1.0-beta-4\wagon-ssh-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\com\jcraft\jsch\0.1.38\jsch-0.1.38.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-ssh-common\1.0-beta-4\wagon-ssh-common-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-ssh-external\1.0-beta-4\wagon-ssh-external-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\maven\wagon\wagon-file\1.0-beta-4\wagon-file-1.0-beta-4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-repository-api\2.2.4\sesame-repository-api-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-query\2.2.4\sesame-query-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-model\2.2.4\sesame-model-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-collections\2.3\aduna-commons-collections-2.3.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-concurrent\2.2\aduna-commons-concurrent-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-iteration\2.3\aduna-commons-iteration-2.3.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-i18n\1.0\aduna-commons-i18n-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-rio-api\2.2.4\sesame-rio-api-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-lang\2.3\aduna-commons-lang-2.3.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-net\2.2\aduna-commons-net-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-text\2.2\aduna-commons-text-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-io\2.4\aduna-commons-io-2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryresultio-api\2.2.4\sesame-queryresultio-api-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryparser-sparql\2.2.4\sesame-queryparser-sparql-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryparser-api\2.2.4\sesame-queryparser-api-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryalgebra-model\2.2.4\sesame-queryalgebra-model-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-repository-sail\2.2.4\sesame-repository-sail-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-sail-api\2.2.4\sesame-sail-api-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-sail-nativerdf\2.2.4\sesame-sail-nativerdf-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-sail-inferencer\2.2.4\sesame-sail-inferencer-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryparser-serql\2.2.4\sesame-queryparser-serql-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryalgebra-evaluation\2.2.4\sesame-queryalgebra-evaluation-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-queryresultio-sparqlxml\2.2.4\sesame-queryresultio-sparqlxml-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\info\aduna\commons\aduna-commons-xml\2.2\aduna-commons-xml-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-rio-rdfxml\2.2.4\sesame-rio-rdfxml-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\openrdf\sesame\sesame-rio-turtle\2.2.4\sesame-rio-turtle-2.2.4.jar;%CLASSPATH%
set CLASSPATH=z:\net\sourceforge\jena\jena\2.4\jena-2.4.jar;%CLASSPATH%
set CLASSPATH=z:\antlr\antlr\2.7.5\antlr-2.7.5.jar;%CLASSPATH%
set CLASSPATH=z:\net\sourceforge\jena\arq\1.4\arq-1.4.jar;%CLASSPATH%
set CLASSPATH=z:\net\sourceforge\jena\iri\1.0\iri-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\commons-logging\commons-logging\1.1\commons-logging-1.1.jar;%CLASSPATH%
set CLASSPATH=z:\logkit\logkit\1.0.1\logkit-1.0.1.jar;%CLASSPATH%
set CLASSPATH=z:\avalon-framework\avalon-framework\4.1.3\avalon-framework-4.1.3.jar;%CLASSPATH%
set CLASSPATH=z:\javax\servlet\servlet-api\2.3\servlet-api-2.3.jar;%CLASSPATH%
set CLASSPATH=z:\concurrent\concurrent\1.3.4\concurrent-1.3.4.jar;%CLASSPATH%
set CLASSPATH=z:\icu4j\icu4j\3.4\icu4j-3.4.jar;%CLASSPATH%
set CLASSPATH=z:\org\json\json\1.0\json-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\woodstox\wstx-asl\2.8\wstx-asl-2.8.jar;%CLASSPATH%
set CLASSPATH=z:\owlapi\owlapi\2.2.0\owlapi-2.2.0.jar;%CLASSPATH%
set CLASSPATH=z:\org\slf4j\slf4j-log4j12\1.4.2\slf4j-log4j12-1.4.2.jar;%CLASSPATH%
set CLASSPATH=z:\org\clojure\clojure-lang\1.1.0-alpha-SNAPSHOT\clojure-lang-1.1.0-alpha-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\org\clojure\clojure-contrib\1.0-SNAPSHOT\clojure-contrib-1.0-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\wwmm\pub-crawler\0.1\pub-crawler-0.1.jar;%CLASSPATH%
set CLASSPATH=z:\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;%CLASSPATH%
set CLASSPATH=z:\commons-codec\commons-codec\1.2\commons-codec-1.2.jar;%CLASSPATH%
set CLASSPATH=z:\org\dspace\foresite\SNAPSHOT\foresite-SNAPSHOT.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\jena\2.5.5\jena-2.5.5.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\arq\2.2\arq-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\org\apache\lucene\lucene-core\2.2.0\lucene-core-2.2.0.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\arq-extra\2.2\arq-extra-2.2.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\jenatest\2.5.5\jenatest-2.5.5.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\iri\0.5\iri-0.5.jar;%CLASSPATH%
set CLASSPATH=z:\com\ibm\icu\icu4j\3.4.4\icu4j-3.4.4.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\concurrent-jena\1.3.2\concurrent-jena-1.3.2.jar;%CLASSPATH%
set CLASSPATH=z:\com\hp\hpl\jena\json-jena\1.0\json-jena-1.0.jar;%CLASSPATH%
set CLASSPATH=z:\rome\rome\0.9\rome-0.9.jar;%CLASSPATH%
set CLASSPATH=z:\org\ccil\cowan\tagsoup\tagsoup\1.0.1\tagsoup-1.0.1.jar;%CLASSPATH%
set CLASSPATH=z:\javax\vecmath\1.2\vecmath-1.2.jar;%CLASSPATH%

java clojure.main "%LENSFIELD_HOME%\lensfield-build\src\main\clj\lensfield\cli.clj" %*

【问题讨论】:

看起来 z 驱动器是 Maven 存储库的根。您是否有理由不使用 ant+Ivy 或 Maven 来运行它或将依赖项打包到“lib”目录中? 【参考方案1】:

如果您使用的是 Java 6,则可以在类路径中使用通配符,例如:

java -cp libs/* com.mypackage.MyProgram

有关详细信息,请参阅the documentation(向下滚动到“了解类路径通配符”)。

注意:这不适用于旧版本的 Java。

【讨论】:

这对我来说是新的,我已经使用 6 18 个月了!很高兴知道。 如何让 Ant 从 .. 对象中检索字符串“libs/*”?【参考方案2】:

您也许可以通过定义更多驱动器号来进行重构,即如果您有 W: 指向“z:\org\apache\maven\”,则应该删除一些字符。重复几次,您可能会变得足够低以使其工作。

【讨论】:

【参考方案3】:

环境变量的最大大小约为 32760 个字符。但是,cmd(以及批处理文件中)单个命令行的最大大小为 8190 个字符。

由于您在此处构建了一个非常长的 CLASSPATH 变量,因此您会遇到该限制,即使所讨论的环境变量仍然可以更长。延迟扩展在这里可能无济于事,因为它仍然会导致难以处理的长命令行。

目前我看到两个选项:

使用 VBScript 而不是批处理文件。我猜1 它支持比这更长的行。此外,您不必将整个类路径写在一行代码中;它可以很容易地放在一个字符串中。 使用setx,包含在 Windows Vista 或更高版本中,或在此之前的 Windows 资源工具包中。 setx 允许您从文件中读取,但它也直接写入注册表,因此它本质上等同于在您的用户环境中设置类路径(而不是仅针对单个进程)。

1我不确定,但它没有继承 cmd 的旧代码库,所以这可能是一个合理的假设。

【讨论】:

【参考方案4】:

除了 subst 命令,您可以尝试创建指向 JAR 所在的所有目录的短符号链接。使用 Windows Sysinternals Suite 中的免费 junction 工具来实现此目的。

[...]

使用交汇点

使用联结列出联结:

用法:[-s]

-s 递归子目录

例子:

判断一个文件是否是一个联结, 指定文件名:

junction c:\test

要列出目录下的联结点, 包括 -s 开关:

junction -s c:\

创建联结 c:\Program-Files 对于“c:\Program 文件”:

C:\>md Program-Files

C:\>junction c:\Program-Files "c:\Program Files"

要删除联结,请使用 -d 开关:

junction -d c:\Program-Files

【讨论】:

【参考方案5】:

我并不完全了解 Windows 的具体细节,但鉴于您遇到的是命令行问题,而不是可变大小问题,您不能定义变量并使用它们吗?例如:

    
    set PLEXHOME=z:\org\codehaus\plexus\plexus-component-annotations\1.0-beta-3.0.5\plexus-component-annotations-1.0-beta-3.0.5.jar
    set CLASSPATH=%PLEXHOME%;%CLASSPATH%
    set WAGONHOME=z:\org\apache\maven\wagon\wagon-provider-api\1.0-beta-4\wagon-provider-api-1.0-beta-4.jar
    set CLASSPATH=%WAGONHOME%;%CLASSPATH%
    set MAVENAPIHOME=z:\org\apache\maven\maven-plugin-api\3.0-alpha-2\maven-plugin-api-3.0-alpha-2.jar
    set CLASSPATH=%MAVENAPIHOME%;%CLASSPATH%
    ...

【讨论】:

【参考方案6】:

你为什么要寻找 java 类路径?如果您知道类在哪里,那么只需通过直接路径名而不是文件名来调用该类。

【讨论】:

【参考方案7】:

这些罐子中的任何一个都关心他们住在哪里吗?能否让批处理文件将它们全部复制到 localjar 目录中,然后列出它们?

您可以使用xcopy /d/y,它仅在文件更改时复制。

【讨论】:

【参考方案8】:

如果您正在运行 vista 和 java 6,另一种选择是使用 MKLINK 命令创建一个带有符号链接的目录,以便所有 jar 都出现在一个目录中,然后使用 java 6 引用所有 jar 的能力带有 *.jar。

我认为其他答案几乎耗尽了 windows 选项,但另一种选择是制作一个调用 clojure.main 并将所有这些 jar 放入其类路径中的包装 jar。

【讨论】:

【参考方案9】:

问题出在第一组 CLASSPATH=....;%CLASSPATH% 只是去掉了最后的 %CLASSPATH% 。该错误不是描述性的,而是因为 %CLASSPATH% 没有值。

【讨论】:

【参考方案10】:

对我来说,除了通过将 jar 文件移动到“C:\jars”之类的文件夹中以某种方式缩短类路径之外,没有其他解决方案可以解决此问题。

【讨论】:

以上是关于由于“输入行太长”,在 Windows 上运行 .bat 文件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows安装部署yahoo的cmak运行时报错:输入行太长,命令语法不正确

Kafka 输入行太长 命令语法不正确

如何增加 Windows 中的输入行长度(最大值)?

运行 pip install - 在 Windows 机器上。由于 Web 代理而出现证书错误

odoo10.0可以在windows上运行吗

由于与64位的windows不兼容此程序或功能无法启动或运行