Ich habe eine Java-Klasse, die, wenn wir ausführen, eine Batch-Datei ausgeführt wird. Ich habe eine Variable isSuccessful
(boolean), die entweder true oder false anzeigt, ob die Batchdatei ihren Befehl richtig oder falsch ausgeführt hat. Jetzt wird die wahre oder falsche Ausgabe nur in der Konsole angezeigt. Ich will es auf dem Web-Browser angezeigt werden, wenn ich in einer URL (zB localhost:8080/runbatchfile
)Zeige Java-Ausgabe im Browser
Bisher habe ich diese Codes:
RunBatchfile.java
@RunWith(SpringRunner.class)
@SpringBootTest
public class RunBatchFile {
@Test
public void RunningBatchCommand() {
String filePath = "C:/Users/attsuap1/Desktop/test.bat";
try {
Process p = Runtime.getRuntime().exec(filePath);
int exitVal = p.waitFor();
boolean isSuccessful = true;
if (exitVal == 0)
{
isSuccessful = true;
} else {
isSuccessful = false;
}
System.out.println(isSuccessful);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Batch-Datei. java
public class BatchFile extends RunBatchFile {
private static String isSuccessful;
public BatchFile(String isSuccessful) {
this.isSuccessful = isSuccessful;
}
public static Object getIsSuccessful() {
System.out.println(isSuccessful);
return isSuccessful;
}
}
Diese BatchFile.Java Klasse gibt mir th Fehler:
java.lang.Exception: Test class should have exactly one public zero-argument constructor at org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor(BlockJUnit4ClassRunner.java:171) at org.junit.runners.BlockJUnit4ClassRunner.validateConstructor(BlockJUnit4ClassRunner.java:148) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:127) at org.junit.runners.ParentRunner.validate(ParentRunner.java:416) at org.junit.runners.ParentRunner.(ParentRunner.java:84) at org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java:65) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:138) at org.springframework.test.context.junit4.SpringRunner.(SpringRunner.java:49) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
BatchFileController.java
@RestController
public class BatchFileController {
private static final String template = "Result, %s";
private static String getIsSuccessful;
@RequestMapping("/runbatchfile")
@ResponseBody
public BatchFile batchFile(@RequestParam(value = "result") String result) {
return new BatchFile(String.format(template, result));
}
}
Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Ich bin neu in diesem. Ich habe versucht, was ich kann. Bitte helfen Sie mir, meine Codes zu korrigieren. Ich danke dir sehr.
Können Sie bitte die Ausnahme einfügen, die Sie erhalten? – Waqas
@Waqas Hallo, fertig –
Wie rufst du deine "contextLoads()" Methode an? Ich sehe nicht, dass es aus der "BatchFile" -Klasse aufgerufen wird – tdaxr