Windows/macOS/Linuxの環境変数
環境変数とは何ですか?
環境変数は、Windows、macOS、Linuxなどのオペレーティングシステム(OS)で実行されているすべてのプロセス/ユーザーがアクセスできるグローバルシステム変数です。 環境変数は、システム全体の値を格納するのに便利です。
-
PATH:最も頻繁に使用される環境変数で、実行可能プログラムを検索す -
OS:オペレーティングシステム。 -
COMPUTENAMEUSERNAME:コンピュータと現在のユーザー名を格納します。 -
SystemRoot:システムルートディレクトリ。 - (Windows)
HOMEDRIVEHOMEPATH:現在のユーザーのホームディレクトリ。
(Windows)環境変数
windowsの環境変数では大文字と小文字が区別されません(レガシー DOSでは大文字と小文字が区別されないため)。 通常、大文字で名前が付けられ、単語はアンダースコア(_JAVA_HOME。
環境変数とその値の表示
すべての環境変数とその値を一覧表示するには、CMDを起動し、次のようにコマンド”set“を発行します。
// Display all the variables (in NAME=VALUE pairs)setCOMPUTERNAME=xxxxxxxOS=xxxxxxxPATH=xxxxxxx.......
“setPATHという変数に注意してください。
特定の変数を表示するには、コマンド”set varnameecho %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 varnameecho %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%'%'echoecho %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既存の
PATHWindowsの/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シェルを使用しています。 すべての環境変数を一覧表示するには、コマンド”
envprintenvset$varname'$'を使用します(Windowsでは%varname%を使用します)。 - Windowsは、
- 特定の変数の値を出力するには、コマンド”
echo $varname“を使用します。 - 環境変数を設定するには、コマンド”
export varname=valuevarname=valuesetvarname=valuevarname=unsetvarname“)。
Bashシェルで環境変数を永続的に設定する方法
Bashシェルの起動スクリプト”
export~/.bashrc"~/.bash_profile"~/.bash_profile~/.profile/etc/profile“システム全体の操作のための。 Dot(.ls -als -alPATH"~/.bashrc"~/.bash_profile~/.profile"~/.bashrc“)。~は現在のユーザーのホームディレクトリ、またはすべてのユーザーの”/etc/profileCLASSPATH環境変数を設定できます。 たとえば、export CLASSPATH=.:/usr/local/tomcat/lib/servlet-api.jar
Bashシェルはパス区切り文字としてコロン(
:)を使用しますが、windowsはセミコロン(;)を使用します。bashシェルを更新するには、”source“コマンドを発行します(またはbashシェルを再起動します)。:古いcsh(C-shell)およびksh(Korn-shell)- すべての環境変数を一覧表示するには、”
printenvenv“)を使用します。 - 環境変数を設定および設定解除するには、”
setenv varname valueunsetenv varnameset varname=valueunset 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"~/.bashrcPATH"~/.bashrcPATH~/.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は現在のディレクトリ(.PATHPATH././myProgram
現在のディレ(windowsは、パスを検索する前に、現在のディレクトリ(
.)を自動的に検索します。Macosではパス区切り文字としてコロン(:)を使用しますが、Windowsではセミコロン(;)を使用します。
Javaアプリケーションと環境変数PATH、CLASSPATH、JAVA_HOME
Javaアプリケーションのインストールと実行における多くの問題は、環境変数(オペレーティングシステムJAVA_HOME。コマンドラインからプログラムを起動すると、オペレーティングシステムはPATHPATHは、実行可能プログラムを検索するためのディレクトリのリストを保持します。
PATH(Windows用)
実行可能プログラム(ファイル拡張子が”.exe.bat.com“)をCMDシェルから起動すると、Windowsは現在の作業ディレPATH環境変数にリストされています。 これらのディレクトリにプログラムが見つからない場合は、次のエラーが表示されます:たとえば、Javaコンパイラ”javac.exe“を使用してJavaソースファイルをコンパイルしようとしているが、”javac.exePATH次のエラーが表示されます。
javac Hello.java'javac' is not recognized as an internal or external command,operable program or batch file.
PATHディレクトリのリストを維持します。 ディレクトリは、windowsではセミコロン(;)で区切られています。
Javaアプリケーションの場合、PATHには次のディレクトリが含まれている必要があります:JDKの”binc:\Program Files\java\jdk1.x.x\bin“)、Javaコンパイラ”javac.exe“やJavaランタイム”java.exe“などのJDKプログラムが含まれています。
c:\windows\system32c:\windows“コンソールプログラムとコマンドが含まれています。JDKの”binc:\windows\system32c:\windowsPATH。 これは、いくつかの古いWindowsシステムがこれらのディレクトリに独自のJavaランタイム(しばしば古くなっている)を提供するためです(コンピュータで”java.exe“を検索してみてください。既存のパスにディレクトリ(JDKの”bin“)を追加するには、「パスにディレクトリを追加する方法」をチェックします。PATH(macOS/Linux用)
ほとんどのUnixとmacOSは「ターミナル」でいわゆるBashシェルを使用しています。 Bashシェルで実行可能プログラム(executableのファイル権限を持つ)を起動すると、システムはPATHにリストされているすべてのディレクト たとえば、Javaコンパイラ”javac“を使用してJavaソースファイルをコンパイルしようとしていますが、”javacjavacjavacjavacjavacjavacjavacjavac、次のエラーが表示されます: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.jarjre/classes, and others. - Java Extension Directories: 外部JARファイルをJava拡張ディレクトリにコピーできます(これは削除され、JDK10からは適用されません)。
- Windowsの場合、Java拡張ディレクトリは”
<JAVA_HOME>\jre\lib\extc:\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.dirsSystem.out.println(System.getProperty("java.ext.dirs"))で印刷できます。 - Windowsの場合、Java拡張ディレクトリは”
- ユーザークラスの検索パス(つまり、クラスパス):次の順序で決定されます。
- デフォルトは現在の作業ディレクトリ(
.)。 -
CLASSPATH環境変数のエントリ。 -
-cp-classpathCLASSPATH環境変数をオーバーライドします。 - ランタイムコマンドラインオプション
-jar、上記のすべてを上書きします。ユーザークラスのパスは、Javaシステムプロパティ”java.class.path“に保持されます。
すべてのJavaアプリケーションに対して永続的なCLASSPATH-cp-classpath)コマンドラインオプ IDE(Eclipse/NetBeansなど)は、各アプリケーションの-cp-classpathCLASSPATH環境に依存しません。Javaランタイム(“java“)が上記のすべての場所でプログラムで使用されているクラスを見つけることができない場合、エラー”メインクラスxxxxを見つラングNOCLASSDEFFOUNDERROR”(JDK1.7より前)。同様に、Javaコンパイラ(”javac“)は、”シンボルが見つかりません”、”パッケージが存在しません”などのコンパイルエラーを発行します。注意事項
注意事項: 外部ネイティブライブラリ(”
.lib.dll.a.so“)は、JREのプロパティのパスにあります”java.library.pathPATHjava.lang.UnsatisfiedLinkError: no xxx in java.library.path“が発生します。CLASSPATH環境変数
CLASSPATH環境変数には、ディレクトリ(多くのクラスファイルを含む)とJARファイル(クラスファイルの単一ファイCLASSPATHCLASSPATH.)を含めることが重要です。 それ以外の場合は、現在のディレクトリは検索されません。に共通する課題にこんにちは世界のプログラム:
CLASSPATHが設定されていますが、現在の作業ディレクトリは含まれていません。 したがって、現在のディレクトリは検索されず、”エラー:メインクラスHelloを見つけたりロードしたりできませんでした”こんになります。こんには、次のこんにちは 単にCLASSPATHCLASSPATHCLASSPATHCLASSPATHCLASSPATH'.'を含めてください。PATHCLASSPATHはJavaでのみ使用されます。PATHPATHiv 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
CLASSPATHCLASSPATHexport 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_HOMEJAVA_HOMEが設定されていない場合は、「環境変数JAVA_HOMEが定義されていません」が表示されます。 それ以外の場合は、現在の設定が表示されます。P>設定/変更するには
JAVA_HOMEWindowsで:”コントロールパネル”を起動します。- “システム”
- “高度なシステム設定”
- “詳細設定”タブに切り替えます。
- “環境変数”
- “システム変数”を選択します(すべてのユー 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には、新しい
bashcshkshcmd.execommand.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
PATHis set permanently in the login or shell initialization script (e.g., “~/.login~/.profile~/.bashrc~/.bash_profile“, or “/etc/profile“). Windows’PATHis 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