Mikä vika tässä

metodissa

private static void MuodostatekstiRaportti() {
EventQueue.invokeLater(new Runnable() {

public void run() {

DateFormat dateFormat = new SimpleDateFormat("ddMMyyyyHHmm");
Date pvm = new Date();
String aikaleima=dateFormat.format(pvm);

RTFWriter rw = new RTFWriter();

FileWriter fw = null;
File raportti = new File (aikaleima ".RTF");




try {
fw = new FileWriter(raportti);

rw.writeAsRTF(tulostaulu.getModel(),fw);
try {


Process p = Runtime.getRuntime().exec("\"C:/Program Files/Windows NT/Accessories/wordpad.exe\"" raportti.getPath());

} catch (IOException ex) {
Logger.getLogger(uusipaalomake.class.getName()).log(Level.SEVERE, null, ex);
}

} catch (IOException ex) {
ex.printStackTrace();
}

}
});

Wordpad avautuu, mutta raportti ei. Se on kyllä olemassa ja siihen kirjoittuu sisältö.
4601
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

System.out.println(raportti.getPath());

ennen kun ajat ton Runtimen. Tuleeko sieltä täys polku tiedoston nimen kanssa vai pelkkä polku samaan hakemistoon?

tee varmuuden vuoksi ennen prosessin ajamista joku

if(raportti.exists())
{
//aja wordpad
}

laita koko polku wordpad.exe tiedosto eka muuttujaan ja tulosta se muuttuja konsoliin. Kopioi se javan konsolista ja kokeile ajaa wintoosan konsolista. Käynnistyykö oikein wordpad ja tiedoston kanssa? Meinaan voiko olla joku merkkivirhe jossain?


String filupolku = "\"C:/Program Files/Windows NT/Accessories/wordpad.exe\"" raportti.getPath();
System.out.println(filupolku);
Process p = Runtime.getRuntime().exec(filupolku);

Hmm nyt kun kattoo muuten niin ei oo spacea wordpad.exe ja raportti.getPath() välissä eli pitäs olla

"\"C:/Program Files/Windows NT/Accessories/wordpad.exe\" " raportti.getPath();

Äänestä

Flushaa ja sulje filewriter ennen wordpad testiä. Kun yrität ajaa wordpadiä, tiedostoa ei ole vielä kirjoitettu levylle kokonaan!

Äänestä
  • Välilyönnin asettaminen auttoi! Mutta mietin olisiko jotain konstia, millä raportin saisi vain avattua editoriin, nythän tiedosto luodaan järjestelmään jo valmiiksi. Käyttäjä voisi sitten editorissa painaa tallennusnappulaa ja tallentaa tiedoston, jos niin haluaa. Exit on Close-tuhoaa tiedoston käytön jälkeen, mutta tällöin pitäisi sitten valita Tallenna nimellä ja eri tiedostonimi, jos tiedoston haluaa säilyttää, eikä tuota kikkaa välttämättä käyttäjä aina muista!

    Äänestä

  • Aloittaja kirjoitti:

    Välilyönnin asettaminen auttoi! Mutta mietin olisiko jotain konstia, millä raportin saisi vain avattua editoriin, nythän tiedosto luodaan järjestelmään jo valmiiksi. Käyttäjä voisi sitten editorissa painaa tallennusnappulaa ja tallentaa tiedoston, jos niin haluaa. Exit on Close-tuhoaa tiedoston käytön jälkeen, mutta tällöin pitäisi sitten valita Tallenna nimellä ja eri tiedostonimi, jos tiedoston haluaa säilyttää, eikä tuota kikkaa välttämättä käyttäjä aina muista!

    luoda se tiedosto levylle, että sä voit avata sen ei niitä muistiin luoda.

    Voit opetella käyttämään erillistä kirjastoa RTF tiedostojen luomiseen / avaamiseen, jos tarvitsen enemmän ominaisuuksia.

    Eli tarvitsetko ohjelmointirajapinnan käsitelläksesi teksti -dokumentteja
    RTF - iText - http://www.lowagie.com/iText/
    OpenOffice - http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide

    Äänestä

Kommentoi aloitusta


Vikaaa... kirjoitti:

metodissa

private static void MuodostatekstiRaportti() {
EventQueue.invokeLater(new Runnable() {

public void run() {

DateFormat dateFormat = new SimpleDateFormat("ddMMyyyyHHmm");
Date pvm = new Date();
String aikaleima=dateFormat.format(pvm);

RTFWriter rw = new RTFWriter();

FileWriter fw = null;
File raportti = new File (aikaleima ".RTF");




try {
fw = new FileWriter(raportti);

rw.writeAsRTF(tulostaulu.getModel(),fw);
try {


Process p = Runtime.getRuntime().exec("\"C:/Program Files/Windows NT/Accessories/wordpad.exe\"" raportti.getPath());

} catch (IOException ex) {
Logger.getLogger(uusipaalomake.class.getName()).log(Level.SEVERE, null, ex);
}

} catch (IOException ex) {
ex.printStackTrace();
}

}
});

Wordpad avautuu, mutta raportti ei. Se on kyllä olemassa ja siihen kirjoittuu sisältö.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu