2

新しいMS Wordドキュメントを開いて、Javaでボタンをクリックして開くコードを教えてください.

class OpenWordFile {

    public static void main(String args[]) {

        try {
            Runtime rt = Runtime.getRuntime();
            rt.exec("cmd.exe /C start Employee.doc");
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Exception occured" + ex);
        }

    }
}
4

4 に答える 4

1

たぶんjava.awt.Desktopを使用すると役立つでしょうか?

    File f = new File("<some temp path>\\file.docx");
    f.createNewFile();

    Desktop.getDesktop().open(f);

新しい空のドキュメントを作成し、拡張機能のsystsem指定プログラムで開きます。このソリューションの強みは、すべてのOSで機能することです...OSにファイルを表示するプログラムがある限り。

私はあなたがファイルの作成をもう少し制御できるsemthingを探していると思いますが...

于 2012-09-21T11:32:13.500 に答える
1

Javaだけを使用してこれを行うことはできません。少なくとも、DOCファイルを生成する必要がある場合は、3番目のツールライブラリAsposeが必要です。このスレッドを見てください。そうでない場合は、ランタイムを使用して既存のファイルを開くことができます。

于 2012-09-21T11:27:05.773 に答える
1

何も言わずにコメントだけ

Runtime run = Runtime.getRuntime();
String lcOSName = System.getProperty("os.name").toLowerCase();
boolean MAC_OS_X = lcOSName.startsWith("mac os x");
if (MAC_OS_X) {
    run.exec("open " + file);
} else {
    //run.exec("cmd.exe /c start " + file); //win NT, win2000
    run.exec("rundll32 url.dll, FileProtocolHandler " + path);
}
于 2012-09-21T11:28:47.380 に答える
1

最近のリリース(Java 6.0)では、Java は Desktop クラスを提供します。クラスの目的は、指定されたファイルに関連付けられているシステムでアプリケーションを開くことです。そのため、Word ドキュメント (.doc) で open() メソッドを呼び出すと、.doc ファイルに関連付けられたアプリケーションである MS Word が自動的に呼び出されます。

ユーザーからドキュメント番号を取得し、ドキュメントをMSWord. 仮定は次のとおりです。ドキュメントは でfilename構成されて保存され<document number>>.docます。

以下に、そのままコンパイルして実行できる Java プログラムを示します。DIR 変数を .doc ファイルが保存されているフォルダーに変更してください。

Java で Word Doc を開くコードは次のとおりです...ネットからの抜粋です....

import java.io.File;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

public class WordDocument extends JFrame {
    private JButton btnOpen;
    private JLabel jLabel1;
    private JTextField txtDocNumber;

    private static String DIR  ="c:\\worddocuments\\";   // folder where word documents are present.

    public WordDocument() {
       super("Open Word Document");
       initComponents();
    }

    private void initComponents() {
        jLabel1 = new JLabel();
        txtDocNumber = new JTextField();
        btnOpen = new JButton();

        Container c = getContentPane();
        c.setLayout(new java.awt.FlowLayout());
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Enter Document Number  : ");
        c.add(jLabel1);

        txtDocNumber.setColumns(5);
        c.add(txtDocNumber);

        btnOpen.setText("Open Document");
        btnOpen.addActionListener(new ActionListener() {      // anonymous inner class 
            public void actionPerformed(ActionEvent evt) {
                  Desktop desktop = Desktop.getDesktop();  
              try {
                File f = new File( DIR + txtDocNumber.getText()  +  ".doc");
                 desktop.open(f);  // opens application (MSWord) associated with .doc file
              }
              catch(Exception ex) {
                // WordDocument.this is to refer to outer class's instance from inner class
                JOptionPane.showMessageDialog(WordDocument.this,ex.getMessage(),"Error", JOptionPane.ERROR_MESSAGE);
              }
            }
        });

        c.add(btnOpen);

    } // initCompnents()

    public static void main(String args[]) {
          WordDocument wd = new WordDocument();
          wd.setSize(300,100);
          wd.setVisible(true);
    }
}
于 2012-09-21T11:29:03.003 に答える