Avatar billede kfikser Nybegynder
08. juli 2002 - 15:44 Der er 10 kommentarer

hvordan kalder jeg word

Hvordan starter jeg word igennem java?
Jeg har fundet en måde at gøre det på, men den understøtter ikke lange filnavne:
try
{
   
    Runtime.getRuntime().exec("start d:\\paradigmaer\\færdig~1\\fundin~1.dot");
}
    catch(Exception e)
{
    System.out.println("FEJL");
    e.printStackTrace();
}

En måde at løse problemet på kunne være at lave alle filnavne om til korte filnavne, har java en mulighed for det eller skal jeg selv programmere det? Eller kan java kalde word med lange filnavne?
Avatar billede jakoba Nybegynder
08. juli 2002 - 15:57 #1
hvad med en .bat fil med et kort filnavn.
Avatar billede kfikser Nybegynder
08. juli 2002 - 16:02 #2
nej for det er mange forskellige filer jeg skal hente så jeg kan ikke lave en .bat fil for alle sammen...
Avatar billede hmm10 Nybegynder
08. juli 2002 - 16:17 #3
skal dine *.dot-filer have lange navne? Giv dem en "id (ex: 0001.dot)" - det havde jeg gjordt... c",) Forsat go' dag
Avatar billede kfikser Nybegynder
08. juli 2002 - 16:21 #4
Ja de skal desværre have lange filnavne.
Avatar billede webster Nybegynder
08. juli 2002 - 16:22 #5
hmm fra fx VB kan man få en instance af et hvilket som helst office program man kan bearbejde... hvis du skal lave noget seriøst arbejde med de filer du henter så burde det da være muligt at lave en native dll der kan wrappe den funktionalitet du søger efter..
Avatar billede jakoba Nybegynder
08. juli 2002 - 16:29 #6
Runtime.getRuntime().exec("start batfil.bat d:\\paradigmaer\\færdig~1\\fundinhorribelt_langt_navn.dot");

i filen batfil.bat står der så
    run %1%

det lange filnavn er nu en parameterstreng der først fortolkes indeni din batch fil, hvor det er styresystemets regler der gælder.

mvh JakobA
Avatar billede kfikser Nybegynder
08. juli 2002 - 16:48 #7
Det ser ikke lige ud til at det virker, jeg har skrevet linjerne ind i programmet og skrevet "run %1%" i "batfil.bat".
Avatar billede kfikser Nybegynder
08. juli 2002 - 16:51 #8
Min kode ser ud som følgende:
Runtime.getRuntime().exec("start batfil.bat D:\\Paradigmaer\\Færdige paradigmaer\\Kommissionsaftale - bil.dot");
Avatar billede assembler Nybegynder
25. marts 2003 - 09:59 #9
Dette burde løse det.
Har lavet eksemplet i en threaded klasse, så klassen kan køre som stand alone funktion hvis den gøres variabel.(Her tænkes på string arrayet hvor man kunne lave parameter overførsel)
import java.lang.*;
import java.io.*;
class Function2 extends Thread implements Runnable
{
int NUM;
  Function2()
  {
  }
  public void run()
  {
    function();
  }
    void function()
    {
    Runtime rt = Runtime.getRuntime();
      try
      {
      String[] call =
{"C:\\Program Files\\Microsoft Office\\Office10\\winword.exe","C:\\Documents and Settings\\BLEH\\My Documents\\Skema2.rforr20031.doc","","","","","","",""};

        Process child = rt.exec(call);
        BufferedReader in = new BufferedReader(new InputStreamReader(child.getInputStream()));
      String childOutput = "";
      while ((childOutput = in.readLine())!= null)
      {
        System.out.println(childOutput+"\n");
          }
        child.waitFor();
        if(child.exitValue()==0)
        {
          System.out.println("Success");
          }
      }
      catch(Exception e1)
      {
    System.out.println(e1);
      }
    }
    public static void main(String[]args)
    {
        Function2 f=new Function2();
        f.start();
    }
}
Husk at sætte String call op på 1 linie, og det samm med BufferedReaderen ;-)
Avatar billede assembler Nybegynder
25. marts 2003 - 10:05 #10
Her kan du lave path'en på dokumentet lige så lang som String klassen understøtter strings, så man skal lige holde øje med alle de der illegal escape char ting ;-) (Der er dog en mindre detalje ved eksemplet her, det er sådan at man skal vide hvor word er installeret på maskinen, for at kunne kalde winword rent i dos'en uden path til exe filen så skal word have tilknytning til classpath'en (tror jeg nok hehe))
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