使用している環境については何も言わず、サーバー側の環境では使用していないと思います。JavaScriptは通常、ユーザーのクリックやマウスの動きなどに応答するためにブラウザーで機能しますが、厳密にはブラウザーの範囲内です。実行しようとしているのは、ブラウザが実行されている基盤となるOS(ローカルで実行されている場合)または通常のWebページ環境のサーバー側OSでI/O操作を実行することです。これは単なるセキュリティの問題ではありません。JavaScriptは、クライアントのOSやサーバー側のOSに直接接続していません。
必要なのは、ApacheやIISなどのWebサーバー環境で、おそらくASP.NET、JSP、PHP(CodeIgniterのような優れたフレームワークを使用)、または私ではなくCGIのような環境を実行しています。
ユーザーがリンクまたは送信ボタンをクリックして、サーバーにリクエストを送信します。関連するサーバー側プログラムが要求を処理し、話し合ったI / O操作を実行して、テキストで応答します。JavaScriptは、そのプロセスのほとんどには関係ありません。それは、あなたが何らかの派手な動的な方法で応答を表示する方法を理解しようとしているときにのみ、再びそれ自身になります。
そこには何百万ものチュートリアルがあります:
そうは言っても、サーバー側のJavaScript環境(http://nodejs.org/)がありますが、要点は、サーバーにリクエストを送信することを意味するhttpプロトコルの制限によって常に制限されるということです。サーバーは、クライアントとしての特権に応じてリクエストを処理し、必要に応じてI / O操作を実行し、HTMLのストリームで応答します。サーバー上での直接操作は許可されません。
これはどれも簡単なことではありません。急な学習曲線を期待してください。
テキストファイルの内容を表示する
これは、テキストファイルの内容を読み取ってWebページに表示するサンプルJSPページです。ボタンなどは追加していません。サーバー上のファイルを読み取る方法を示しているだけです。
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.io.*"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BufferedReader</title>
</head>
<body>
<%
String path = this.getServletContext().getRealPath("/target/message.txt");
File file = new File(path);
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
while(br.ready()){
out.print(br.readLine() + "<BR>");
}
reader.close();
%>
</body>
</html>
/target/message.txt
(Webアプリケーションのルートからの)仮想絶対パスです。toの呼び出しgetRealPath
は、Fileオブジェクトを作成できる実際の物理パスを取得する方法です。
後でexec
バッチファイルの実行に使用する方法について説明しますが、Javaのような強力な言語/ライブラリを考えているのに、なぜバッチファイルを実行するのでしょうか。プログラムをJavaで書くのは意味がありませんか?