gpt4 book ai didi

java - Jar文件不接受java中的大字符串

转载 作者:行者123 更新时间:2023-12-01 09:29:20 25 4
gpt4 key购买 nike

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

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

另外,如何创建一个 jar 文件来接受一个 String 输入和一个 byte[] 输入 in main{ in void main(String args[ ])}

或者还有其他想法吗?要求是以某种方式将 String 的巨大 String/byte[] 传递到我正在创建的 java jar 文件

最佳答案

this question 中所述,操作系统设置了最大参数长度。由于此参数是 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
}

关于java - Jar文件不接受java中的大字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com