Windows/macOS/Linuxの環境変数
環境変数とは何ですか?
環境変数は、Windows、macOS、Linuxなどのオペレーティングシステム(OS)で実行されているすべてのプロセス/ユーザーがアクセスできるグローバルシステム変数です。 環境変数は、システム全体の値を格納するのに便利です。
-
PATH
:最も頻繁に使用される環境変数で、実行可能プログラムを検索す -
OS
:オペレーティングシステム。 -
COMPUTENAME
USERNAME
:コンピュータと現在のユーザー名を格納します。 -
SystemRoot
:システムルートディレクトリ。 - (Windows)
HOMEDRIVE
HOMEPATH
:現在のユーザーのホームディレクトリ。
(Windows)環境変数
windowsの環境変数では大文字と小文字が区別されません(レガシー DOSでは大文字と小文字が区別されないため)。 通常、大文字で名前が付けられ、単語はアンダースコア(_
JAVA_HOME
。
環境変数とその値の表示
すべての環境変数とその値を一覧表示するには、CMDを起動し、次のようにコマンド”set
“を発行します。
// Display all the variables (in NAME=VALUE pairs)setCOMPUTERNAME=xxxxxxxOS=xxxxxxxPATH=xxxxxxx.......
“set
PATH
という変数に注意してください。
特定の変数を表示するには、コマンド”set varname
echo %varname%
“:
// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx
“現在の”CMDセッションの環境変数を設定/設定解除/変更する
環境変数を設定(または変更)するには、コマンド”set varname
echo %varname%
“:
// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx
環境変数を設定(または変更)するには、”
// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx
環境変数を設定(または変更)する。set varname=value
“。 '='
set varname=
“を使用します。
set varname=value
“。 '='
set varname=
“を使用します。
set varnameset varname=valueset varname=set |
Display the value of the variableSet or change the value of the variable (Note: no space before and after '=')Delete the variable by setting to empty string (Note: nothing after '=')Display ALL the environment variables |
For examples,
// Set an environment variable called MY_VARset MY_VAR=hello // Displayset MY_VARMY_VAR=hello // Unset an environment variableset MY_VAR= // Displayset MY_VAREnvironment variable MY_VAR not defined
An environment variable set via the “set
” command under CMD is a local, available to the current CMD session only. Try setting a variable, re-start CMD and look for the variable.Windowsで変数を参照するには、%varname%
'%'
echo
echo %varname%
“の形式で出力できます。
// Display the PATH environment variableecho %PATH%PATH=xxxxxxx // Append a directory in front of the existing PATHset PATH=c:\myBin;%PATH%PATH=c:\myBin;
環境変数を”永続的に”追加または変更する方法
Windowsで環境変数を永続的に追加/変更するには(すべてのWindowsのプロセス/ユーザー:
- “コントロールパネル”を起動します
- “システム”
- “高度なシステム設定”
- “詳細設定”タブに切り替えます
- “環境変数”
- “システム変数”を選択します(すべ 「値」を入力してタイプミスエラーを発生させる代わりに、「Browse Directory」を使用することをお勧めします。..”または”ファイルを参照します。..”目的のディレクトリまたはファイルを取得するためのボタン。
- “編集”を選択します。
- 新しい”値”を入力します。 「値」を入力してタイプミスエラーを発生させる代わりに、「Browse Directory」を使用することをお勧めします。..”または”ファイルを参照します。..”目的のディレクトリまたはファイルを取得するためのボタン。新しい設定を有効にするには、CMDを再起動する必要があります。
新しい設定を確認するには、CMDを起動します:CMDから実行可能プログラム(ファイル拡張子が”
.exe
.bat
.com
“)を起動すると、WindowsのPATH環境変数CMDから実行可能プログラム(ファイル拡張子が”
.exe
.bat
.com
“)を起動します。シェルでは、windowsは現在の作業ディレクトリ内の実行可能プログラムを検索し、その後にPATH
環境変数にリストされているすべてのディ これらのディレクトリにプログラムが見つからない場合は、次のエラーが表示されます:p>// (Windows 2000/XP/Vista/7/8/10) "cmd.exe"abc'abc' is not recognized as an internal or external command,operable program or batch file. // (Windows 95/98) "command.com"abcBad command or file name
現在の
PATH
を一覧表示するには、コマンドを発行します。PATHPATH=path1;path1;path3;...
Windowsのパスにディレクトリを追加する方法
既存の
PATH
既存の
PATH
既存の
PATH
Windowsの/div>:
- “コントロールパネル”を起動
- “システム”
- “高度なシステム設定”
- “高度な”タブに切り替え
- “環境変数”
- “システム変数”(すべてのユーザーの場合)の下で、”パス”を選択
- “編集”
- (新しいWindows10の場合)現在のパス設定に含まれるディレクトリを示すテーブルがポップアップ表示されます。⇒”New”⇒””New””Windows””the””the””the””the””the””the””the””the””the””the””the””Windows””Windows””Windows””Windows””Windows””Windows””Windows””Windows””the””the””the””the””the””the””the””the””the””the””the””the””the””the””the””the””the””ブラウズ。..”パスに追加する目的のディレクトリを選択するには(あなたがタイプミスエラーを行いますように入力しないでください!①「上に移動」を繰り返しクリックすると、上に移動します②「OK」(「キャンセル」しないでください)③「OK」④「OK」。
- (古いWindowsの場合)ポップアップテーブルが表示されなかった場合は、コンピュータを変更する時間です。新しいパス設定を有効にするには、CMDを再起動する必要があります。
新しい設定を確認するには、CMDを起動します。
PATHPATH=path1;path2;path3;...
注意事項:
- Windowsは、
PATH
エントリを検索する前に、現在のディレク (Unixes/macOSは、パスに明示的に含めない限り、現在のディレクトリを検索しません。) - windowsでは、パス区切り文字としてセミコロン(
;
)が使用されます; Unix/macOSはコロンを使用しますが(:
)。 - ディレクトリ名にスペースなどの特殊文字が含まれている場合(強くお勧めしません)、二重引用符で囲みます。
(macOS/Linux)環境変数
macOS/Unixの環境変数は大文字と小文字を区別します。 グローバル環境変数(すべてのプロセスで使用可能)は大文字で名前が付けられ、単語はアンダースコア(
_
JAVA_HOME
。 ローカル変数(現在のプロセスでのみ使用可能)は小文字です。Bashシェルで環境変数を使用する
ほとんどのUnix(Ubuntu/macOS)は、いわゆるBashシェルを使用しています。 すべての環境変数を一覧表示するには、コマンド”
env
printenv
set
$varname
'$'
を使用します(Windowsでは%varname%
を使用します)。 - Windowsは、
- 特定の変数の値を出力するには、コマンド”
echo $varname
“を使用します。 - 環境変数を設定するには、コマンド”
export varname=value
varname
=value
set
varname
=value
varname
=
unset
varname
“)。
Bashシェルで環境変数を永続的に設定する方法
Bashシェルの起動スクリプト”
export
~/.bashrc
"~/.bash_profile
"~/.bash_profile
~/.profile
/etc/profile
“システム全体の操作のための。 Dot(.
ls -a
ls -al
PATH
"~/.bashrc
"~/.bash_profile
~/.profile
"~/.bashrc
“)。~
は現在のユーザーのホームディレクトリ、またはすべてのユーザーの”/etc/profile
CLASSPATH
環境変数を設定できます。 たとえば、export CLASSPATH=.:/usr/local/tomcat/lib/servlet-api.jar
Bashシェルはパス区切り文字としてコロン(
:
)を使用しますが、windowsはセミコロン(;
)を使用します。bashシェルを更新するには、”source
“コマンドを発行します(またはbashシェルを再起動します)。:古いcsh(C-shell)およびksh(Korn-shell)- すべての環境変数を一覧表示するには、”
printenv
env
“)を使用します。 - 環境変数を設定および設定解除するには、”
setenv varname value
unsetenv varname
set varname=value
unset varname
“を使用します。
PATH環境変数
ほとんどのUnixとmacOSは、いわゆるBashシェルを「ターミナル」で使用しています。 Bashシェルで実行可能プログラム(executableのファイル権限を持つ)を起動すると、システムは
PATH
にリストされているすべてのディレクト プログラムが見つからない場合は、次のエラーが表示されます。abcbash: abc: command not found
現在のディレクトリ(
.
PATH
./
)を含める必要があります。./myProgram
現在の
PATH
、コマンド:echo $PATHpath1:path2:path3:...
macOS/Linuxのパスにディレクトリを追加する方法
macOS/Unixの既存の
PATH
"~/.bashrc
PATH
"~/.bashrc
PATH
~/.login
“"~/.bash_profile
~/.profile
~
/etc/profile
“すべてのユーbashシェルを更新するには、”source
“コマンドを発行します(またはbashシェルを再起動します)。// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile
新しい設定を確認するには、CMDを起動します。
echo $PATHpath1:path2:path3:...
PATH
に明示的に含めない限り、unix/macosは現在のディレクトリ(.
PATH
PATH
./
./myProgram
現在のディレ(windowsは、パスを検索する前に、現在のディレクトリ(
.
)を自動的に検索します。Macosではパス区切り文字としてコロン(:
)を使用しますが、Windowsではセミコロン(;
)を使用します。
Javaアプリケーションと環境変数PATH、CLASSPATH、JAVA_HOME
Javaアプリケーションのインストールと実行における多くの問題は、環境変数(オペレーティングシステムJAVA_HOME
。コマンドラインからプログラムを起動すると、オペレーティングシステムはPATH
PATH
は、実行可能プログラムを検索するためのディレクトリのリストを保持します。
PATH(Windows用)
実行可能プログラム(ファイル拡張子が”.exe
.bat
.com
“)をCMDシェルから起動すると、Windowsは現在の作業ディレPATH
環境変数にリストされています。 これらのディレクトリにプログラムが見つからない場合は、次のエラーが表示されます:たとえば、Javaコンパイラ”javac.exe
“を使用してJavaソースファイルをコンパイルしようとしているが、”javac.exe
PATH
次のエラーが表示されます。
javac Hello.java'javac' is not recognized as an internal or external command,operable program or batch file.
PATH
ディレクトリのリストを維持します。 ディレクトリは、windowsではセミコロン(;
)で区切られています。
Javaアプリケーションの場合、PATH
には次のディレクトリが含まれている必要があります:JDKの”bin
c:\Program Files\java\jdk1.x.x\bin
“)、Javaコンパイラ”javac.exe
“やJavaランタイム”java.exe
“などのJDKプログラムが含まれています。
c:\windows\system32
c:\windows
“コンソールプログラムとコマンドが含まれています。JDKの”bin
c:\windows\system32
c:\windows
PATH
。 これは、いくつかの古いWindowsシステムがこれらのディレクトリに独自のJavaランタイム(しばしば古くなっている)を提供するためです(コンピュータで”java.exe
“を検索してみてください。既存のパスにディレクトリ(JDKの”bin
“)を追加するには、「パスにディレクトリを追加する方法」をチェックします。PATH(macOS/Linux用)
ほとんどのUnixとmacOSは「ターミナル」でいわゆるBashシェルを使用しています。 Bashシェルで実行可能プログラム(executableのファイル権限を持つ)を起動すると、システムはPATH
にリストされているすべてのディレクト たとえば、Javaコンパイラ”javac
“を使用してJavaソースファイルをコンパイルしようとしていますが、”javac
javac
javac
javac
javac
javac
javac
javac
、次のエラーが表示されます:Javaアプリケーションをサポートするには、JDKの”bin
“(バイナリ)ディレクトリをパスに含める必要があります。 “パスにディレクトリを追加する方法”を参照してください。
CLASSPATH
Java Archive(JAR)File
配布を容易にするために、Javaクラスはしばしば、いわゆるJARファイルにアーカイブ(zip形式)されます。 サード・パーティのJavaパッケージを使用するには、分散JARファイルを、JavaコンパイラおよびJavaランタイムが使用できる場所に配置する必要があります。
どのようにクラスが見つかりますか?
Java Compiler (“javac
“), Java Runtime (“java
“) and other Java tools searches for classes used in your program in this order:
- Java platform (bootstrap) classes: include system classes in core packages (
java.*
) and extension packages (javax.*
) in “rt.jar
” (runtime class), “i18n.jar
” (internationalization class),charsets.jar
jre/classes
, and others. - Java Extension Directories: 外部JARファイルをJava拡張ディレクトリにコピーできます(これは削除され、JDK10からは適用されません)。
- Windowsの場合、Java拡張ディレクトリは”
<JAVA_HOME>\jre\lib\ext
c:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext
“)にあります。macOSの場合、JDK拡張ディレクトリは”/Library/Java/Extensions
/System/Library/Java/Extensions
“です。Ubuntuの場合、JDK拡張ディレクトリは”<JAVA_HOME>/jre/lib/ext
/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext
/usr/java/packages/lib/ext
“です。
Javaの拡張ディレクトリの場所は、Javaのシステムプロパティ”
java.ext.dirs
System.out.println(System.getProperty("java.ext.dirs"))
で印刷できます。 - Windowsの場合、Java拡張ディレクトリは”
- ユーザークラスの検索パス(つまり、クラスパス):次の順序で決定されます。
- デフォルトは現在の作業ディレクトリ(
.
)。 -
CLASSPATH
環境変数のエントリ。 -
-cp
-classpath
CLASSPATH
環境変数をオーバーライドします。 - ランタイムコマンドラインオプション
-jar
、上記のすべてを上書きします。ユーザークラスのパスは、Javaシステムプロパティ”java.class.path
“に保持されます。
すべてのJavaアプリケーションに対して永続的なCLASSPATH
-cp
-classpath
)コマンドラインオプ IDE(Eclipse/NetBeansなど)は、各アプリケーションの-cp
-classpath
CLASSPATH
環境に依存しません。Javaランタイム(“java
“)が上記のすべての場所でプログラムで使用されているクラスを見つけることができない場合、エラー”メインクラスxxxxを見つラングNOCLASSDEFFOUNDERROR”(JDK1.7より前)。同様に、Javaコンパイラ(”javac
“)は、”シンボルが見つかりません”、”パッケージが存在しません”などのコンパイルエラーを発行します。注意事項
注意事項: 外部ネイティブライブラリ(”
.lib
.dll
.a
.so
“)は、JREのプロパティのパスにあります”java.library.path
PATH
java.lang.UnsatisfiedLinkError: no xxx in java.library.path
“が発生します。CLASSPATH環境変数
CLASSPATH
環境変数には、ディレクトリ(多くのクラスファイルを含む)とJARファイル(クラスファイルの単一ファイCLASSPATH
CLASSPATH
.
)を含めることが重要です。 それ以外の場合は、現在のディレクトリは検索されません。に共通する課題にこんにちは世界のプログラム:
CLASSPATH
が設定されていますが、現在の作業ディレクトリは含まれていません。 したがって、現在のディレクトリは検索されず、”エラー:メインクラスHelloを見つけたりロードしたりできませんでした”こんになります。こんには、次のこんにちは 単にCLASSPATH
CLASSPATH
CLASSPATH
CLASSPATH
CLASSPATH
'.'
を含めてください。PATH
CLASSPATH
はJavaでのみ使用されます。PATH
PATH
iv id=”JDKのドキュメント”CLASSPATH
の設定”と”クラスの検出方法”を読んでください(ハイパーリンクはJDKのドキュメントのインデックスページ、またはグーグリングから見つけることができます)。CLASSPATH環境変数(Windowsの場合)
CLASSPATH
はディレクトリとjarファイルを受け入れます。 パスエントリはセミコロン(;
)で区切られます。例:現在のCMDセッションの
CLASSPATH
を表示および変更します。p>// Display current setting of CLASSPATHset CLASSPATH // Set CLASSPATH to the current directory and a JAR fileset CLASSPATH=.;d:\tomcat\lib\servlet-api.jar
CLASSPATH
CLASSPATH
export CLASSPATH=.:/usr/local/tomcat/bin/servlet-api.jar
:
‘を使用します(windowsではセミコロン’;
‘の代わりに)。CLASSPATH
を永続的に設定するには、上記のexportコマンドをbashシェル初期化スクリプトに配置します(ホームディレクトリの.bashrc
.bash_profile
/etc/profile
すべてのユーザーに対して)。 “環境変数の設定方法”を参照してください。Tomcatなどの多くのJavaアプリケーションでは、環境変数JAVA_HOME
をJDKインストールされたディレクトリに設定する必要があります。WINDOWSでJAVA_HOMEを設定する方法
まず、CMDを起動して発行することで
JAVA_HOME
が既に設定されているかどうかを確認します。JAVA_HOME
JAVA_HOME
が設定されていない場合は、「環境変数JAVA_HOMEが定義されていません」が表示されます。 それ以外の場合は、現在の設定が表示されます。P>設定/変更するには
JAVA_HOME
Windowsで:”コントロールパネル”を起動します。- “システム”
- “高度なシステム設定”
- “詳細設定”タブに切り替えます。
- “環境変数”
- “システム変数”を選択します(すべてのユー li>
- “変数名”に”Java_home”と入力します。
- “変数値”で、”ディレクトリの参照”をクリックします。..”JDKのインストールされたディレクトリに移動します(例:”
C:\Program Files\Java\jdk-15.0.xx
“)。- OK♥OK♥OK。既存の”
JAVA_HOME
“設定を変更するには:- “
JAVA_HOME
“⇒”編集” - “変数値”で、”ディレクトリを参照”をクリックします。..”JDKのインストールされたディレクトリに移動します(例:”
C:\Program Files\Java\jdk-15.0.xx
“)。 - OK♥OK♥OK。新しい設定を有効にするには、CMDを再起動する必要があります。
新しい設定を確認するには、CMDを再起動します:まず、端末を起動して発行することで
JAVA_HOME
が既に設定されているかどうかを確認します。echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
echo $JAVA_HOME
JAVA_HOME
はjdkインストールされたディレクトリに設定されます。 JDKがインストールされているディレクトリを見つける必要があります。
macOSとUbuntu JDKがインストールされているディレクトリを検索します。p>
"~/.bashrc
~/.login
.
)はデフォルトで非表示になっていることに注意してください。macOS/Ubuntuの非表示を解除する方法。新しい設定を有効にするには、bashシェルを更新する必要があります。 次のように”source
“コマンドを発行します。// Refresh the Bash Shellsource ~/.bashrc // or "source ~/.login"// Verify the new settingecho $JAVA_HOME
Windows vs.Unix/macOS
Javaはプラットフォームに依存しません。 JavaクラスはUnixと同様にWindowsで実行されます-バイナリ互換です。Unixには、新しい
bash
csh
ksh
cmd.exe
command.com
です。 各シェルには、独自のコマンドセット、ユーティリティ、および独自のスクリプティングプログラミング言語が付属しています。Unixの変数名は$varname
$CLASSPATH
と表されます。 Windowsは%varname%
%CLASSPATH%
を使用します。 - Unix uses command “
printenv
” (print environment) or “env
” to list all the environment variables. Windows uses command “set
“. - Unix’s
PATH
is set permanently in the login or shell initialization script (e.g., “~/.login
~/.profile
~/.bashrc
~/.bash_profile
“, or “/etc/profile
“). Windows’PATH
is set permanently via Control Panel ⇒ System ⇒ …. - 現在のディレクトリは、Unixの
PATH
./programName
.
.
PATH
に明示的に含めることをお勧めします。 一方、現在のディレクトリはwindowsのPATH
暗黙的に含まれています。 - Windowsのパスには、ドライブ文字とディレクトリが含まれています。 各ドライブにはルートディレクトリがあります。 ディレクトリ区切り文字としてバックスラッシュ
'\'
c:\jdk1.6\bin
“)。 Linuxのパスにはドライブ文字がありません。 単一のルートがあります。 Unixでは、スラッシュ'/'
/usr/bin/jdk1.6
“)。Windowsではパス区切り文字としてセミコロン';'
PATH
環境変数)が、Unixではコロン':'
を使用します。Windows/DOSでは、改行(または行末(EOL)、または改行)として”0D0AH
“(キャリッジリターンと改行)を使用します。 Unix/macOSは”0AH
“(改行)のみを使用します。
- デフォルトは現在の作業ディレクトリ(
Leave a Reply