[Java] .properties Wert auslesen -> immer true wird ausgegeben

02/22/2012 15:41 bestora#1

Mein Problem ist, dass immer nur als resultat true rauskommt
sieht jemand eine lösung dafür?

Imports sind:
Code:
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
schonmal n danke im vorraus
02/22/2012 16:01 jacky919#2
Code:
onlineMode = props.getProperty("online-mode", "false") != null;
Du setzt onlineMode immer den Wert den die Bedingung hat.
Um es zu verdeutlichen:
Code:
onlineMode = (props.getProperty("online-mode", "false") != null);
Probier einfach nur
Code:
onlineMode = props.getProperty("online-mode", "false");
02/22/2012 16:05 bestora#3
Type mismatch: cannot convert from String to boolean
2 schnelle Lösungen:
Statt Boolean -> String
Setze '!= null' ein

ich teste mal die methode mit String


€dit: String methode lässt der garnicht zu...

jemand ne andere methode?

wenn ich '!= null' einsetzte bin ich ja wieder am gleichen punkt mit dem Problem
02/22/2012 16:12 jacky919#4
Code:
onlineMode = props.getProperty("online-mode", "false") == "true";
?
02/22/2012 16:16 bestora#5
jetzt ist das problem anders herum

jetzt erkennt der nur noch
false
02/22/2012 16:17 jacky919#6
Dann poste mal die "server.properties".
02/22/2012 16:19 bestora#7
Code:
#Minecraft server properties
#Tue Feb 21 14:30:31 CET 2012
allow-nether=true
level-name=world
enable-query=false
allow-flight=false
server-port=25565
level-type=DEFAULT
enable-rcon=false
level-seed=
server-ip=
spawn-npcs=true
white-list=false
spawn-animals=true
online-mode=true
pvp=true
difficulty=1
gamemode=0
max-players=20
spawn-monsters=true
generate-structures=true
view-distance=10
motd=A Minecraft Server
ja es geht um ein Minecraft Plugin :D

will nur den wert online-mode auslesen
02/22/2012 16:23 jacky919#8
Kann man in java denn zwei Strings mit == vergleichen?
02/22/2012 16:24 bestora#9
jop

wenn != [ungleichheit] geht dann geht auch == [gleichheit]
:D


€dit:

hilft dir das weiter?
Code:
getProperty
public String getProperty(String key,
                 String defaultValue)
Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns the default value argument if the property is not found.
Parameters:
key - the hashtable key.
defaultValue - a default value. 
Returns:
the value in this property list with the specified key value.
See Also:
setProperty(java.lang.String, java.lang.String), defaults
02/22/2012 16:50 ms​#10
Geht es mit...

Code:
onlineMode = props.getProperty("online-mode") != null;
Quote:
Originally Posted by jacky919 View Post
Code:
onlineMode = props.getProperty("online-mode", "false") == "true";
?
Wenn schon so, dann

Code:
onlineMode = props.getProperty("online-mode", "false") != "false";
02/22/2012 16:53 bestora#11
dann ist es wieder immer
true

€dit das hier muss ich noch testen
Code:
onlineMode = props.getProperty("online-mode", "false") != "false";

€dit²: beides ist resultat immer true
02/22/2012 16:56 jacky919#12
Quote:
Originally Posted by Metin2Spieler97 View Post
Wenn schon so, dann

Code:
onlineMode = props.getProperty("online-mode", "false") != "false";
Wo ist der Unterschied?
02/22/2012 16:56 ms​#13
Quote:
Originally Posted by jacky919 View Post
Wo ist der Unterschied?
Sorry, hab mich verlesen. :s
Deines scheint doch am logischsten zu sein.
02/22/2012 17:00 bestora#14
mit
Code:
onlineMode = props.getProperty("online-mode") == "true";
ist es wieder false immer

€dit: glaube alle möglichkeiten haben wir durch :D
02/22/2012 17:03 ms​#15
Dann gib mal aus, was dein getProperty überhaupt returnt. Anscheinend liegt es daran, dass der String nicht richtig ausgelesen wird.