• ベストアンサー

環境変数

akishizumaの回答

回答No.5

失礼とは存じますが、助言とちょっと意見を。 >あまりPATHを通すと、それだけ同じ名前のコマンドが >出てくる可能性も高くなるから、~ >大体、同じファイル名の、全く動作の違うプログラムなど、 >ウィルスでもない限りは作られることはありませんから。 >若し、そんなプログラムに遭遇したというのなら、 >プログラムの作成者に文句言ってください。 残念ながらUNIXとかWINDOWSでもよくあります。 UNIXとかなら使用するユーザ(グループ毎のときもありますがここでは 簡単にひとくくりにします)により 環境を変えてユーザ毎に参照パスを変えることはよくあります。 UNIX/WINDOWS系にかかわらず 同一コマンド名で元のプログラムの機能に拡張性を持たせたプログラム作って 自分のが使うときは其方を参照するようにパスをきるなんてよくやってました。 最近のユーザはやらないのかなぁ。 DOSの頃なんて、MS-DOS3.3Dと5.0のCOMMAND.COMをスイッチングして 使ってたけど...。 過渡期のOSでは同じファイル名で違うユーザインターフェースなんて ざらじゃないかなぁ。 確かに事実おっしゃられるような悪意有るプログラムも 最近非常に増えてきています。 ですが、結局はこれに限らず使う側がどの様に使うか、どの様に対処するか なのではないでしょうか。 「同じファイル名の、全く動作の違うプログラムなど、ウィルス云々 そんなプログラムに遭遇したというのなら、プログラムの作成者に文句言ってください。」 というのは如何なものでしょうか。 皆様それぞれにお考えがあるかと存じます。 結局は、聞く側がどの様に判断するかということですが。 簡単な例をひとつ WINDOWS系のある環境に於けるDLLファイルについて プログラマーさんが2人いました。 それぞれが、便利なあるプログラムA.EXEとB.EXEを作りました。 A.EXE、B.EXEからよばれるC.DLLがあります。 C.DLLは他から提供されているものなので改竄は出来ません。 Aさんの環境にはC.DLLはVer.1が入っています。 Bさんの環境にはC.DLLはVer.2が入っています。 2人それぞれの環境は特に問題なく動いています。 2人はフリープログラムとしてそれぞれのプログラムを公開しました。 勿論、指定するバージョンのC.DLLを使用する旨の注意も怠り無くしています。 ここで、Cさんがこれは便利だとA.EXE、B.EXEを使用し始めました。 Cさんの環境はBさんの環境に酷似していて、既にC.DLLのVer.2が入っています。 B.DLLのVer.2はB.EXEの使用においては支障が無いのですが A.EXEでは上手くいきません。 そこで、C.DLLのVer.1をA.EXEのカレントにおきました。すると上手く動きました。 後日談 UNIX系ではよくあることですが、WINDOWS系ばりばりのCさんは C.DLLが2つあるのは気に入りません。 そこでCさんAさんにC.DLLをVer.2にして開発して下さいとメールをしました。 しかし、Aさんからは丁重にお断りのメールが来ました。 というのも、 その方がC.DLLをVer.2にする為の環境を与えて呉れるでしょうか 環境をそろえる為の金銭を出すでしょうか。 いいえ、与えて呉れませんし金銭を出してくれません。 そこで、自分は丁重にお断りしました。

関連するQ&A

  • バッチファイルで環境変数が設定されません

    よろしくお願いいたします。 Windows XP Pro の command.com において、バッチファイルの中で set コマンドを使って環境変数を設定しても、バッチから抜けると環境変数の設定ができていません。 バッチ終了後の環境変数は全てバッチ開始前と同じ状態です。 command.com のプロンプトで set コマンドを実行すると、環境変数はセットした内容に変化もしくは追加されます。 cmd.exe ではバッチからでもプロンプトからでも set コマンドで環境変数を操作できます。 なぜ command.com 上のバッチから操作できないのかわからず、不便でかないません。 アドバイスをよろしくお願いいたします。 @echo off set foo=word path=c:\ echo %foo% echo %path% 上記バッチを実行すると word c:\ と表示されますが、set コマンドで確認すると FOO は存在しません PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;... と表示されます。 これはバッチ実行前の値です。

  • 環境変数の設定

    PC(WinME)にjavaの開発環境を入れようと、java入門書に付随していた CD-ROMからJDKをインストールしたのですが、MS/DOSプロンプトから 環境変数の設定の有効を確かめようとするのですがMS/DOSプロンプトで c:\WINDOWS> ↑のあとにjavacと打つと、「コマンドまたはファイル名が正しくありません」と 出てしまいます。どうしたらよいのでしょうか? c:\autoexec.batは、以下の通りです。 SET windir=C:\WINDOWS SET winbootdir=C:\WINDOWS SET COMSPEC=C:\WINDOWS\COMMAND.COM SET PROMPT=$p$g SET TEMP=C:\WINDOWS\TEMP SET TMP=C:\WINDOWS\TEMP SET PATH=C:\SDK1.3.1\bin;%PATH%(ここだけ入力しました。) わかる方いましたらよろしくお願いします。

  • Javaの環境変数設定について。

    はじめまして。OSはWindowsXPでJavaの勉強をしようと思い、「JDK 5.0 Update 16」をインストールし、環境変数の設定を行ったのですが、PATHにもともと環境変数があったのに、間違えて新しい環境変数に変更してしまいました。コマンドプロンプトで「jsvac」コマンドを打ち込んだら C:\Documents and Settings\takumi>javac 'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ました。 環境変数を元に戻す方法はないのでしょうか? どなたかご教授お願いします。

    • ベストアンサー
    • Java
  • 環境変数設定で

    senの環境変数を設定する場合、マイコンピュータを右クリックして、環境変数選択して、SEN_HOMEをつくり、 そこにC:\sen-1.2.2.1としました。 次にpathに%SEN_HOME%\binとしました。  そしてコマンドプロントでsh sen.shとしても'sh' は、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とエラーがでます。  antは同じ要領でできたのですが・・・

    • ベストアンサー
    • Java
  • システム環境変数が保存されない?

    質問させて下さい。 set Path=%Path%;C:\*** というコマンドをバッチファイルにして実行しているのですが、マイコンピュータのプロパティからシステム環境変数を確認してもセットしたはずのパスが登録されていません。再起動しても同様です。ちなみにシステムアカウントで実行しました。 上記のコマンドは一時的にセットするもので、永久保存するコマンドは別にあるのでしょうか? 宜しくお願いします。

  • 環境変数 PATH を消してしまいました...

    javaのPATHを通そうと設定をしたのですがコマンドプロンプトで認識されていないことが 分かり、設定を色々替えていたところ、PATHと言う項目自体消えてしまいました。 ●●のユーザー環境変数(上部のウインド)には項目がなかったのですが、新規で追加を してみたのですが、上手く動かずそちらも削除してしまいました。 システム環境の変数(下部のウインド)に元々色々な文字が入っていた物を消してしまい シャットダウンをする時や立ち上げる時、プログラムを削除する時に『●●が見つからなかった ため....』と小窓が開いてしまいます。 それを調べたところ、PATHを消してしまったことが問題のようだと分かったのですが解決の 方法が分かりません。ほとんど分からないのに色々いじりすぎたことを反省しています。 どなたか教えてください。 宜しくお願いします。

  • システム環境変数の設定

    通常、コントロールパネルのシステムにて設定するシステム環境変数(PATH)を、バッチファイルからコマンドを使用して設定したいのですが、何か良い方法は無いでしょうか?

  • Javaの環境変数が設定出来ません

    JDKインストール後、コマンドプロンプトでjavacの確認を行った所、 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 と出ます。 システム環境変数の設定は 変数:Path  値:D:\java\jdk1.6.0_25\bin; 変数:JAVA_HOME 値:D:\java\jdk1.6.0_25 JDKをインストールしたフォルダは「D:\java\jdk1.6.0_25」なのですが、 コマンド:Pathでは「D:\java\jdk1.6.0_25\bin;,」 コマンド:Set JAVA_HOMEでは「JAVA_HOME=D:\java\bin」 と表示されます。 アドレスに間違いはないような気がするのですが・・・何故でしょうか; どなたかお願いします

  • 環境変数について

    ◇環境変数をセットしたい場合 WindowsXPを使っています。 コントロールパネル-システムの環境変数から設定しましたが、 ログオフや再起動しないと反映されないのでしょうか? ユーザー環境変数やシステム環境変数の違いも影響有るのでしょうか? AA C:\ PATH %AA%;として、%で括れば、登録済みの環境変数も使えるのでしょうか?

  • javaの環境変数設定

    java初心者です。コマンドプロンプトでjavacやjavac -versionと入力しても、 「javacは内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と出てしまいます。 環境変数の設定でどこか間違っているのでしょうか? 変数PATH  変数値C:¥Program Files¥Java¥jdk1.8.0_60¥bin 変数値はエクスプローラからアドレスをコピーしたし、jdk1.8.0_60¥binにjavac.exeがあることも確認たので、これ以上どうしたらいいか分かりません。 osはwindows10です。