Avatar billede cybershah Nybegynder
04. december 2006 - 11:25 Der er 12 kommentarer og
1 løsning

Vise consolens indhold i et GUI vindue

Hej
Hvordan kan jeg får GUI'en til at vise det, som bliver udskrevet i consolen? Det behøver ikke være realtime, altså GUI'en må gerne tage det hele fra consolen på en gang og visualisere det i vinduet efter programmet er termineret.
Avatar billede arne_v Ekspert
04. december 2006 - 15:14 #1
PrintStream save = System.out;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            PrintStream pw = new PrintStream(baos);
            System.setOut(pw);
            // goer noget som skriver til System.out
            System.setOut(save);
            pw.flush();
            // nu indeholder baos.toString() al console output
Avatar billede cybershah Nybegynder
05. december 2006 - 11:28 #2
jeg få det her frem på GUI'en: java.io.PrintStream@6782a9
Avatar billede cybershah Nybegynder
05. december 2006 - 11:43 #3
my bad.. havde skrevet pw.toString istedet for. det virker nu. send venligst et svar.
Avatar billede arne_v Ekspert
05. december 2006 - 14:56 #4
svar
Avatar billede cybershah Nybegynder
06. december 2006 - 12:29 #5
jeg accepterer dit svar arne_v men jeg har nu et lille problem mere og hvis du også lige gider kigge på det, er det kanon. jeg har lavet en jar fil, med direktiv Main-Class og direktiv Class-Path som indeholder flere jar filer der skal inkluderes i dem den endelige jar fil. Programmet kører fint fra eclipse, men når jeg kører den fra kommandoprompten får jeg følgende fejl:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logg
er
        at myLogging.Log3.<init>(Log3.java:7)
        at myLogging.Log3Main.main(Log3Main.java:19)

linie 7 i Log3 klassen er:
public Logger logger = Logger.getLogger("Log3");

og typen Logger skal hentes fra org.apache.log4j, hvilket både importeres i koden og også er inkluderet jar fil (log4j.jar). jeg tror selv det er et eller andet med min ClassPath. Hvad siger du/i?
Avatar billede cybershah Nybegynder
06. december 2006 - 12:31 #6
Hovsa, fejlen hedder selvfølgelig:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at myLogging.Log3.<init>(Log3.java:7)
        at myLogging.Log3Main.main(Log3Main.java:19)
Avatar billede arne_v Ekspert
06. december 2006 - 16:03 #7
jeg tror at det skyldes et mismatch mellem Class-Path direktiv og den faktiske
placering af log4j.har i forhold til din jar
Avatar billede cybershah Nybegynder
07. december 2006 - 10:46 #8
hmmm.. mener du i manifest filen!? for der står følgende:

Main-Class: myLogging.Log3Main
Class-Path: myLogging.log4j.jar myLogging.mail.jar myLogging.activation.jar myLogging.error_report.jar myLogging.opennms_core.jar myLogging.opennms_joesnmp.jar myLogging.snmpTrapAppender_1_2_9.jar

og der er linieskift til sidst.
men det mærkelige er, når jeg prøver at køre følgende: "jar cvfm errorLogger.jar manifest.mf myLogging" uden at have jar filerne fra manifest filen i myLogging mappe, dukker der den samme exception op.
Avatar billede arne_v Ekspert
07. december 2006 - 12:57 #9
Class-Path: log4j.jar mail.jar activation.jar error_report.jar opennms_core.jar myLogging.opennms_joesnmp.jar snmpTrapAppender_1_2_9.jar

vil jeg tro
Avatar billede cybershah Nybegynder
07. december 2006 - 13:01 #10
det har jeg allerede prøvet... men forgæves. men jeg tror godt hvorfor den brokker sig! i eclipse fortæller jeg den under run > arguments at den skal bruge min log4j.xml fil: -Dlog4j.configuration=file:///N:/log4j.xml
men hvordan skal denne med når jeg skal lave en jar fil i kommandoprompten!?
Avatar billede cybershah Nybegynder
07. december 2006 - 14:22 #11
jeg har løst problemet. der skulle for det første i kommandoprompten stå:
java -Dlog4j.configuration=file:///N:/log4j.xml -jar errorLogger.jar
og så skulle alle jar filerne blive kopieret til følgende mapper:
..\Java\jdk1.5.0_09\jre\lib\ext
..\Java\jre1.5.0_09\lib\ext

ellers mange tak for hjælpen.
Avatar billede arne_v Ekspert
09. december 2006 - 03:20 #12
jeg synes ikke at det er pænt at gemme jar filer i lib/ext men ...
Avatar billede cybershah Nybegynder
12. december 2006 - 14:08 #13
det har du ret i arne og det bryder jeg mig heller ik om. derfor gravede jeg dybere i det og fandt ud af at jeg blot skulle lave få ændringer i manifest filen, så spiller det hele uden at skulle have jar filerne i ext mappen. manifest filen ser sådan ud nu:

Main-Class: myLogging2/Log2Main
Class-Path: lib/log4j-1.2.14.jar lib/mail.jar lib/activation.jar lib/error_report.jar lib/opennms_core.jar lib/opennms_joesnmp.jar lib/snmpTrapAppender_1_2_9.jar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester