1

我们的应用程序正在生成一个巨大的 java 命令,因为我们提供的类路径中有 700 多个 jar 条目。结果是:

java": error=7, Argument list too long
    at oracle.jbo.dt.jdevx.deployment.SdoDeployListener.deployed(SdoDeployListener.java:547)
    at oracle.jdevimpl.deploy.hook.DeployerListenersHandler$HookDeployerListener.deployed(DeployerListenersHandler.java:418)
    at oracle.jdevimpl.deploy.fwk.ListenerSupport.fireDeployed(ListenerSupport.java:215)
    at oracle.jdeveloper.deploy.common.AbstractDeployer.deploy(AbstractDeployer.java:162)
    at oracle.jdeveloper.deploy.common.AbstractStatefulDeployer.deploy(AbstractStatefulDeployer.java:130)

此 java 命令由 Jdeveloper 工具在内部生成,因此我们无法控制在类路径中提供的 jar。java 命令达到了 /usr/include/linux/limits.h 文件中设置的 131072 字符限制,因为该命令的长度为 135942。

/usr/include/linux/limits.h
#define ARG_MAX       131072    /* # bytes of args + environ for exec() */

如何设置 ARG_MAX 的上限?我无法在操作系统级别设置它,因为此构建可能在不同的机器上运行。

4

0 回答 0