繁体   English   中英

Jar文件不接受Java中的巨大字符串

[英]Jar file not accepting huge string in java

将具有约800K个字符(是的,这是一个巨大的数字)的字符串(在下面的代码中为arg1)传递给Java jar的最佳方法是什么。 以下是我用来调用jar文件的代码:

p = Runtime.getRuntime().exec(jrePath+"/bin/java -jar C:/folder/myjar.jar methodName" + arg1);

或者,如何创建一个jar文件以在void main(String args[]) main {中接受一个String输入和一个byte[]输入

还是其他想法? 该要求是巨大的某种方式传递String / byte[]String来,我创建Java jar文件

本问题所述,操作系统设置了最大参数长度。 鉴于此参数为800K字符,因此可以肯定地说,您已在大多数计算机上超过了此最大值。 为了解决这个问题,您可以使用内置的API将arg1写入临时文件:

final File temp;
try {
    temp = File.createTempFile("temp-string", ".tmp");
} catch (final IOException e){
    //TODO handle error
    return;
}
try (final BufferedWriter writer = new BufferedWriter(new FileWriter(temp))) {
    writer.write(arg1);
} catch (final IOException e){
    //TODO handle error
    return;
}
try {
    // run process and wait for completion
    final Process process = Runtime.getRuntime().exec(
        jrePath + "/bin/java -jar C:/folder/myjar.jar methodName " +
        temp.getAbsolutePath());
    final int exitCode = process.waitFor();
    if (exitCode != 0) {
        //TODO handle error
    }
} catch (final IOException | InterruptedException e){
    //TODO handle error
    return;
}
if (!file.delete()) {
    //TODO handle error
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM