У меня есть сервер Java, что это компиляция Android APK путем командной строки и Writting вывод в файл, это исходный код:input.readLine ждет (заблокирован) навсегда, как с этим бороться?
Process p = Runtime.getRuntime().exec("gradlew assembleRelease", null , new File(this.workDir));
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
standardOutput.writeln(line);
}
input.close();
Она работает идеально со всеми андроид проектов, но если андроида проект имеет каталог или файл с редкими символами (а, п ...) внутри папки активов, а затем, получить застрял в line = input.readLine()
я открыл JConsole, чтобы увидеть, где застрял и я получил это:
Name: Thread-3
State: RUNNABLE
Total blocked: 0 Total waited: 6
Stack trace:
java.io.FileInputStream.readBytes(Native Method)
java.io.FileInputStream.read(FileInputStream.java:255)
java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
java.io.BufferedInputStream.read(BufferedInputStream.java:345)
- locked [email protected]
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
- locked [email protected]
java.io.InputStreamReader.read(InputStreamReader.java:184)
java.io.BufferedReader.fill(BufferedReader.java:161)
java.io.BufferedReader.readLine(BufferedReader.java:324)
- locked [email protected]
java.io.BufferedReader.readLine(BufferedReader.java:389)
com.mobinGen.jobs.AndroidJob.releaseCompile(AndroidJob.java:329)
com.mobinGen.jobs.AndroidJob.jobProcess(AndroidJob.java:122)
com.mobinGen.jobs.BaseJob.process(BaseJob.java:138)
com.mobinGen.generationAPI.GeneratorAndroid$AndroidJobsAsker.run(GeneratorAndroid.java:230)
Как видите, он заблокирован в строке 329, которая равна while ((line = input.readLine()) != null)
Как я могу справиться с этим? это огромная проблема, потому что сервер ждет все время, не компилируя последующие проекты Android.
Благодаря
Может кто-то помочь в этом? – NullPointerException