• ベストアンサー

Javaプログラムからファイル操作

教えてください。 Javaプログラムであるシェルのスクリプトファイルを呼び出します。 そのスクリプトファイルが他のサーバからファイルを取得してくるなどの操作をします。 SSHでLinuxにログインし、スクリプト自体を手動で実行したら問題無いのですが プログラムから実行する時に”許可がありません”などのエラーが表示され、失敗します。 chownやchmod、もしくは何か特定のユーザ(例:rootユーザ)をプログラムの中で指定して 実行する必要があるのでしょうか? もしくは何かLinux上で設定変更する必要があったりするのでしょうか? よろしくお願い致します。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

考えられるのは ・SSHのユーザーとJavaプログラムを実行するユーザーで権限が違う ・SSHユーザーちJavaプログラムの実行ユーザーでログインシェルが違う ・他サーバからファイルを取得する際に、ディレクトリへのファイル書き込み権限がない ・他サーバへのアクセスにSSHを使用していて、Javaプログラムを実行するユーザーに権限が付与されていない 手実行で動くならば、chownやchmodは関係なさそう。

関連するQ&A

  • rootでファイル操作ができないのですが

    linux-2.2.20にてrootユーザでファイルの操作(rm,mv,chown,chmod)ができないの(パーミションエラー)ですが、復旧する方法もしくは手がかりを教えて下さい。 =>セキュリティーが甘くHackされたためこのような状態になりました。 #stat rc.sysinit File: "rc.sysinit" Size: 14512 Filetype: Regular File Mode: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Device: 3,2 Inode: 80455 Links: 1 Access: Fri Feb 8 08:28:49 2002(00000.00:20:51) Modify: Fri Feb 8 04:32:11 2002(00000.04:17:29) Change: Fri Feb 8 04:32:29 2002(00000.04:17:11) #

  • シェルからJavaを起動したい

    シェルからJavaを起動したい 上記ですけど、Linuxで毎回「java パッケージ名.クラス名」を打つのは面倒なので、 シェルスクリプトのファイルを作って、それを実行するだけで起動できるようにしようと思っています。 が、クラスが見つからないってエラーが出て実行できませんでした。 (「java パッケージ名.クラス名」を実行しているディレクトリにシェルを作ってます) 恐らく環境変数などの設定がシェルの中にいるのではないかと思いますが、 シェルスクリプトとかLinuxの環境には疎い為、どういった記述が必要なのか解りません。 どなたか例を提示して頂けないでしょうか? ちなみに、一般的なJavaの環境変数や、 プロジェクト特有・jarファイル等の環境変数は設定済みです。 それから、シェルは以下のように記述してます。 #!/bin/sh java パッケージ名.クラス名 よろしくお願いします。

  • 他ユーザーのシェルスクリプト実行

    他ユーザーのシェルスクリプトを実行する際に「rsh」や「ssh」を使用しないで実行 する方法が知りたいです。 また、シェルはCのプログラムから実行させたいのでパスワードの入力を求められたり するのは避けたいです。 フルパスを直接指定すれば実行は出来ましたが、ユーザーが変わっていないので ほしい結果が得られませんでした。 OSはredhat linuxです。

  • ユーザの利用コマンドを制限

    SuSE Linux 9.3 を使っております。 今回はあるユーザAに対してSSHによるログインのあとにホームディレクトリにあるシェルスクリプトだけを実行させるようなアカウントを作成したいのですが、そういったことは可能でしょうか。 また特定のユーザに対して「ls」は使わせるけど「rm」は使わせないうような細かな調整は可能でしょうか。 ※今回のユーザAに実行させたいシェルスクリプトは特定のファイルを特定のファイルにコピーして古いのは削除してしまうというシンプルなものです。

  • Bシェル内でのユーザー変更

    お世話になっております。 あるBシェルをJP1に登録しジョブ実行しようとしています。 Bシェル内には複数の処理があり、必要に応じてユーザー変更を行う必要があるのですが上手く行きません。 なお、禁止事項にrootユーザーでJP1実行、suid、guidの未指定があり上手く対応が出来ません。 どなたか上手く行く方法をご存知ありませんか? 行いたい処理は以下の通りです。 (1)実行ユーザーで実行 (2)posgreユーザーでログイン (3)ダンプファイルを取得 (4)posgreユーザーをログアウト (5)sshユーザでログイン (6)ダンプファイルを移動 (7)sshユーザをログアウト (8)終了 環境は シェルはBシェル OSはRHEL5.3 です。

  • LinuxでJavaプログラムを起動

    LinuxでシェルからJavaのプログラムを起動する場合、 以下のように打つと思います。 java プログラム名 プログラム名のパスだけで 起動する方法はないのでしょうか? つまりCで書かれたコマンドのようにしたいのですが。 ./プログラム名

    • ベストアンサー
    • Java
  • Javaアプリケーション内でコンパイルはできますか?

    Javaアプリケーションから、シェルにアクセスして、Javaプログラムをコンパイルおよび実行したいのですが、できますか? 具体的には、例えば、JavaアプリケーションのメインフレームにJavaプログラムを記述するテキストエリアがあってユーザはそこにJavaプログラムを記述し、任意の名前で保存できるとします。また、メインフレームには、コマンドを実行するテキストフィールドがあり、ユーザは保存したプログラムをそこからコンパイルできる。つまり、そのテキストフィールドに、 javac xxxxx.java と入力するとコンパイルでき、 java xxxxx とすると実行できる。 このようなことをしてみたいのですが、JavaアプリケーションからWindowsもしくはUNIXのシェルと連携させることはできますでしょうか?ご存知の方よろしくお願いします。

    • ベストアンサー
    • Java
  • Java Update

    昨日から、Java Update のウィンドウが出るようになりました。 ユーザーアカウント制御  Java(TM)SE Runtime Environment 6 Update 6   Sun Microsystems,Inc. プログラムを実行するにはあなたの許可が必要です    「許可」「キャンセル」 と出ています、これはどのようなものなのでしょうか? また、許可して良いものなのでしょうか?

  • sudoの設定方法について

    こちらで質問させて頂きながらシェルスクリプトの勉強をしています。 sudoの記載について、いろいろと試したのですがうまくいきません。 アドバイスお願いいたします。 ◆やりたい事 ・非ルートでログイン時、Shell.shをroot権限で実行したい ・Shell.shからは、他シェルスクリプトが呼ばれる  ※他シェルスクリプトもroot権限が必要 ◆現状 ・sudoers ファイルに  user1 ALL=(ALL) ALL  と記載するとうまくいくが、  user1 ALL=(ALL) /フルパス/Shell.sh  とすると権限がないと言われる ◆質問  Shell.shがroot権限で実行できれば、Shell.shから呼ばれるシェルスクリプトも  root権限になる認識なのですが、間違っているのでしょうか?

  • UNIXシェルプログラム等からバイナリーファイルを作成する方法

    UNIX環境で、ある出力を得るために、複数の Perl スクリプト、シェル スクリプト、またバイナリのプログラムを決まった手順で実行しています。最近になって、これらのプログラムをすべて他の人に譲り渡す必要が生じたのですが、スクリプトの中にソースは配布できないものが含まれています。 そこで、これらのプログラムをまとめて一つのバイナリ実行ファイルを作成できないかと思案しているのですが、それは可能でしょうか。また可能な場合、どのようにしたらよいのか教えていただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう