Exception in thread "main" java.lang.ExceptionInInitializerError, Verursacht durch: java.lang.NullPointerException
Ich bin mit der config.Eigenschaften-Datei, um die stellen Sie den port. Nach dem laufen bin ich vor ein Fehler:
Exception in thread "main" java.lang.ExceptionInInitializerError
Verursacht durch: java.lang.NullPointerException bei
java.util.Eigenschaften$LineReader.readLine ("Eigenschaften.java:434) an
java.util.Eigenschaften.load0(Eigenschaften.java:353) at
java.util.Eigenschaften.Last(Properties.java:341) bei
HttpServer.setPort(HttpServer.java:83) at
HttpServer.(HttpServer.java:26)
Main-Klasse:
public class HttpServer {
static final boolean SSL = System.getProperty("ssl") != null;
static final int PORT = Integer.parseInt(System.getProperty("port", SSL ? "8443" : setPort()));
public static void main(String[] args) {
HttpServer httpServer = new HttpServer();
httpServer.start();
}
public void start(){}
public static String setPort() {
String port = "";
Properties properties = new Properties();
try {
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("src/main/config.properties"));
port = properties.getProperty("server.port");
} catch (IOException e) {
e.printStackTrace();
}
return port;
}
}
Ich bin nicht in der Lage zu verstehen, was ist die Fehlermeldung...
Was denkst du
bitte Lesen Sie diese Antwort auf, wie lese-properties-Datei, stackoverflow.com/questions/333363/...
getResourceAsStream("src/main/config.properties")
tut und warum denken Sie so?bitte Lesen Sie diese Antwort auf, wie lese-properties-Datei, stackoverflow.com/questions/333363/...
InformationsquelleAutor jbakirov | 2015-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie dein code wird in einem maven-Projekt. Als solche,
src/main/resources/config.properties
getResourceAsStream("/config.properties")
Wenn Sie einen maven-build -, maven-Paket wird Ihr Glas und stellen Sie die Ressourcen Teil des classpath. Alles in
resources/
wird ein Teil der classpath-root, da ich es beginnen mit einem Schrägstrich, wenn ich dengetResourceAsStream
.Hätte man auch einfach genannt:
HttpServer.class.getResourceAsStream("/config.properties")
statt.Beachten Sie, dass Sie öffnen Sie einen InputStream, und übergeben es an
Properties.load()
. Dieser wird der stream geöffnet. Besser, etwas zu tun wie:Try-Mit-Ressourcen kümmern, schließen der input-stream, egal was ( auch bei einem Fehler/Ausnahme).
Viele nicht tun, und auch ich lasse es für kurze Programme laufen ... Aber deines schlägt es ist ein HTTP-Server ... so besser, empfindlicher über diese Matten ... undichte Verbindung, Datei-handle-leaks, Speicherverluste, etc. Schließlich könnte es sich der Müll gesammelt, aber besser nicht darauf verlassen.
InformationsquelleAutor YoYo