beim Versuch ein Javaprogramm zu starten (auf der Konsole mit
java program) wirft mir der Interpreter eine Exception raus, aber
ich komme nicht dahinter, was damit gemeint ist.
(bin auch noch Anfänger)
Fehler:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java)
at Buch.main(Buch.java:48)
Google hat mir leider nichts verraten können, genauso wie GoToJava.
Wenn gewünscht, kann ich den Programmcode auch noch mal reinstellen.
Danke im voraus,
Bernhard Heuvel
[ba...@sur-vival.de http://www.sur-vival.de]
«He, hast Du den Hoopy Bernhard Heuvel gesasst?!
Das ist'n Frood, der weiss echt, wo sein Handtuch ist.»
> hallo NG,
>
> beim Versuch ein Javaprogramm zu starten (auf der Konsole mit
> java program) wirft mir der Interpreter eine Exception raus, aber
> ich komme nicht dahinter, was damit gemeint ist.
> (bin auch noch Anfänger)
Dann geb ich dir gleich mal den Tip, dich auf http://www.dclj.de/
umzuschauen. Da gibt es jede Menge Info zu Java und dieser NG.
> Fehler:
>
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(String.java)
> at Buch.main(Buch.java:48)
In Buch.java Zeile 48 rufst du scheinbar String.substring() auf und
verwendest dabei Parameter, die ausserhalb des Strings liegen. Bsp: Der
String hat 7 Buchstaben, dann geht der Index von 0-6. Wenn du jetzt
substring(4,8) aufrufst, ist die 8 ausserhalb des Strings; dann gibt es
diese Exception.
> Google hat mir leider nichts verraten können, genauso wie GoToJava.
> Wenn gewünscht, kann ich den Programmcode auch noch mal reinstellen.
Das ist prinzipiell eine gute Idee. Dann aber nur den relevanten Teil, und
nicht Hunderte von Zeilen (Kam hier schon öfters vor).
> Danke im voraus,
> Bernhard Heuvel
HTH
Rainer
> [ba...@sur-vival.de http://www.sur-vival.de]
> «He, hast Du den Hoopy Bernhard Heuvel gesasst?!
> Das ist'n Frood, der weiss echt, wo sein Handtuch ist.»
BTW, sowas gehört in eine Signatur, mit "-- " (zwei Minus, ein Leerzeichen)
abgetrennt.
> ba...@sur-vival.de (Bernhard Heuvel) wrote:
[snip]
>> Fehler:
>>
>> java.lang.StringIndexOutOfBoundsException: String index out of
>> range: -1
>> at java.lang.String.substring(String.java)
>> at Buch.main(Buch.java:48)
>
> In Buch.java Zeile 48 rufst du scheinbar String.substring() auf und
> verwendest dabei Parameter, die ausserhalb des Strings liegen. Bsp:
> Der String hat 7 Buchstaben, dann geht der Index von 0-6. Wenn du
> jetzt substring(4,8) aufrufst, ist die 8 ausserhalb des Strings; dann
> gibt es diese Exception.
Und der Index -1 deuted darauf hin, dass du als Parameter für substring
anscheinend eine Variable übergeben hast, die du vorher mittels indexOf
ermittelt hast (leider wurde der gesuchte Substring nicht gefunden). Du
solltest also den Rückgabewert von indexOf überprüfen.
Grundsätzlich empfiehlt es sich bei Zweifeln die API-Doc zu rate zu
ziehen. In diesem Fall zur Methode substring() von String und zur
Exception java.lang.StringIndexOutOfBoundsException.
mfg
Joachim Sauer
--
Anyone who gets in between me and my morning coffee should be insecure.
[sic]
- RFC 2324
> hallo NG,
>
> beim Versuch ein Javaprogramm zu starten (auf der Konsole mit
> java program) wirft mir der Interpreter eine Exception raus, aber
> ich komme nicht dahinter, was damit gemeint ist.
> (bin auch noch Anfänger)
>
> Fehler:
>
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(String.java)
> at Buch.main(Buch.java:48)
Also das bedeutet dass du beim "zerschnippeln" deines Strings eine
ungültige Positionsangabe benutzt.
Bsp. du möchtest den String "Hallo" in "all" zerlegen.
0 H 1 a 2 l 3 l 4 o 5
So, jetzt gibst du einfach die Nummer an ab der neue Teilstring beginnen
soll und eventuell, wenn du nicht bis zum Ende den String haben möchtest,
wo er endet.
Als Code sieht das ganze so aus:
String halloString = "Hallo";
String allString = halloString.substring( 1, 4 );
Solltest du jetzt aber auf die Idee kommen eine Position < 0 oder > 5
anzugeben bekommst die die StringIndexOutOfBoundsException.
In der Java Api steht bei String#substring
---
- IndexOutOfBoundsException - if the beginIndex is negative, or endIndex is
- larger than the length of this String object, or beginIndex is larger
- than endIndex.
---
> Danke im voraus,
HTH
Gruss,
Andi
--
http://www.billmann.de
> Fehler:
>
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(String.java)
> at Buch.main(Buch.java:48)
>
> Google hat mir leider nichts verraten können, genauso wie GoToJava.
> Wenn gewünscht, kann ich den Programmcode auch noch mal reinstellen.
Bitte nicht *DEN* Programmcode. Investier vorher ein wenig Arbeit...
schau Dir die Zeile 48 in der Main-Methode von Buch an. Was wird da
getan? Sieh Dir den Rest der Fehlermeldung an (so existent). Wo gehen
die Aufrufe entlang? wo wird letzlich die Methode Substring aufgerufen,
und zwar mit einer Stringposition, die es im String nicht gibt, weil der
z.B. kürzer ist, als Du meinst (z.B. weil mit 0 angefangen wird zu
zählen...)?
Wenn Du dann noch nicht selbst drauf kommst, poste die relevanten
Zeilen, d.h. das, auf das Du das Problem eindampfen konntest, so dass es
noch reproduzierbar bleibt.
Diesen Code poste bitte in einem Style, der zumindest ungefähr den
Sun-Conventions entspricht
(http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html). Wenn Dein
Code aussieht wie von einem Schimpansen geschriebenes Perl, wird manch
einer keine Lust haben, sich das näher anzusehen.
Wenn Du hingegen eine vollständige Fehlermeldung mit den relevanten
Zeilen in lesbarer Form ablieferst, garantiere ich Dir eine Antwort
innerhalb 10 Minuten.
BTW: Du hast sicher gemerkt, dass die Antwort eigentlich schon im ersten
Absatz dieses Postings enthalten ist? ;-)
Gruß,
Michael
> Wenn Du hingegen eine vollständige Fehlermeldung mit den relevanten
> Zeilen in lesbarer Form ablieferst, garantiere ich Dir eine Antwort
> innerhalb 10 Minuten.
Auf das Angebot würde ich bei Gelegenheit gern zurückkommen. Gilt das 24*7? Ich
hätte allerdings gern eine Lösung und nicht nur eine Antwort ;-)
Gruß
Lars
Das war weniger ein Angebot, als vielmehr eine Beschreibung der in
dieser Group herrschenden Zustände. Und diese gilt natürlich auch nicht
für *beliebige* Fragen, sondern für solche auf Newbieniveau.
Wenn Du also bei Gelegenheit gerne fragen möchtest, warum [hier
beliebiegen newbietypischen Code einsetzen] nicht das erwartete Ergebnis
liefert, sondern eine [passende Exception einsetzen] auslöst, dann nur
zu. :-)
Gruß,
Michael
OK. Ich möchte gern eine exe aus meinem Javaprogramm haben. Ich bin seit ein
paar Wochen auf Linux umgestiegen. Erstmal habe ich aus meiner Java-Datei eine
exe gemacht
mv Test.class Test.exe
Die ließ sich aber nicht doppelklicken :-(
Dann habe ich in meinem schlauen Linuxbuch gelesen, daß Linux ausführbare
Dateien nicht an der Dateiendung sondern an Ausführbarkeitsflag erkennt. Achso,
warum sagen die das nicht gleich:
chmod u=+x Test.exe
Wenn ich das Programm jetzt starte kommt:
bash: ./Test.exe: cannot execute binary file
Was mache ich flasch?
Gruß
Lars, Zeit läuft 9:59...
>
> Gruß,
> Michael
>
>>
>
> OK. Ich möchte gern eine exe aus meinem Javaprogramm haben. Ich bin seit ein
> paar Wochen auf Linux umgestiegen. Erstmal habe ich aus meiner Java-Datei eine
> exe gemacht
>
> mv Test.class Test.exe
>
> Die ließ sich aber nicht doppelklicken :-(
>
> Dann habe ich in meinem schlauen Linuxbuch gelesen, daß Linux ausführbare
> Dateien nicht an der Dateiendung sondern an Ausführbarkeitsflag erkennt. Achso,
> warum sagen die das nicht gleich:
>
> chmod u=+x Test.exe
>
> Wenn ich das Programm jetzt starte kommt:
>
> bash: ./Test.exe: cannot execute binary file
>
> Was mache ich flasch?
>
> Gruß
>
> Lars, Zeit läuft 9:59...
Such mal im Archiv dieser NG. Ich kann dir jetzt keine msg-Id geben,
aber die Frage kam glaube ich von Barbara Schmelz. Benutze mal Google.
*gg* Micha
--
Homepage & FAQ von de.comp.lang.java: http://www.dclj.de
ROTFL!
Ingo
Lars Amsel <la...@merula.de> wrote:
[...]
> OK. Ich möchte gern eine exe aus meinem Javaprogramm haben. Ich bin seit ein
> paar Wochen auf Linux umgestiegen. Erstmal habe ich aus meiner Java-Datei eine
> exe gemacht
> mv Test.class Test.exe
> Die ließ sich aber nicht doppelklicken :-(
> Dann habe ich in meinem schlauen Linuxbuch gelesen, daß Linux ausführbare
> Dateien nicht an der Dateiendung sondern an Ausführbarkeitsflag erkennt. Achso,
> warum sagen die das nicht gleich:
> chmod u=+x Test.exe
> Wenn ich das Programm jetzt starte kommt:
> bash: ./Test.exe: cannot execute binary file
> Was mache ich flasch?
binfmt_misc nicht aktiv oder nicht konfiguriert.
Christian
[...]
> OK. Ich möchte gern eine exe aus meinem Javaprogramm haben. Ich bin seit ein
> paar Wochen auf Linux umgestiegen. Erstmal habe ich aus meiner Java-Datei eine
> exe gemacht
>
> mv Test.class Test.exe
[...]
Das du Test.class in .exe umbenannt hast (statt Test.java) bedeutet
schonmal, dass du nicht absoluter Newbie bist.
Gruß,
Jo"SCNR"sch.
--
f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng.
> > Lars, Zeit läuft 9:59...
>
> Such mal im Archiv dieser NG. Ich kann dir jetzt keine msg-Id geben,
> aber die Frage kam glaube ich von Barbara Schmelz. Benutze mal Google.
Siehst Du, Lars. Die erste konstruktive Antwort kam sogar 1 Minute *vor*
Deiner Frage. Toll, was?
Gruß,
Michael
> Rainer Frey <raine...@web.de> wrote:
>
>> ba...@sur-vival.de (Bernhard Heuvel) wrote:
> [snip]
>>> Fehler:
>>>
>>> java.lang.StringIndexOutOfBoundsException: String index out of
>>> range: -1
>>> at java.lang.String.substring(String.java) at
>>> Buch.main(Buch.java:48)
>>
>> In Buch.java Zeile 48 rufst du scheinbar String.substring() auf und
>> verwendest dabei Parameter, die ausserhalb des Strings liegen. Bsp:
>> Der String hat 7 Buchstaben, dann geht der Index von 0-6. Wenn du
>> jetzt substring(4,8) aufrufst, ist die 8 ausserhalb des Strings; dann
>> gibt es diese Exception.
>
> Und der Index -1 deuted darauf hin,
Und ich brauch ne neue Brille. Ich wusste doch, dass der falsche Index in
der Fehlermeldung sein muss. Aber ich hab es nicht gefunden.
[...]
>
> mfg
> Joachim Sauer
Rainer
[...]
> Such mal im Archiv dieser NG. Ich kann dir jetzt keine msg-Id geben,
> aber die Frage kam glaube ich von Barbara Schmelz. Benutze mal Google.
Message-ID: <9p7bm5$fpj$06$1...@news.t-online.com> und folgender Thread. Fast
so schön wie Susi ;-)
> *gg* Micha
rAINER
>> Such mal im Archiv dieser NG. Ich kann dir jetzt keine msg-Id geben,
>> aber die Frage kam glaube ich von Barbara Schmelz. Benutze mal Google.
>
> Siehst Du, Lars. Die erste konstruktive Antwort kam sogar 1 Minute *vor*
> Deiner Frage. Toll, was?
Ich bin begeistert. Damit wäre dann auch der Verbleib der dclj-eigenen
Kristallkugel geklärt. Sozialistisch umlagern hieß das mal ;-)
Gruß
Lars