saltfish666 / saltfish666.github.io

my blog
0 stars 0 forks source link

Java 编译环境 #11

Open saltfish666 opened 6 years ago

saltfish666 commented 6 years ago

系统环境变量

感觉就像是 编程语言中的全局变量,给应用程序使用

PATH

$ echo $PATH

/usr/local/bin:
/usr/bin:
/bin:
/usr/sbin:

/sbin:/opt/X11/bin:
/usr/local/share/dotnet:
/usr/local/go/bin:
/Library/Frameworks/Mono.framework/Versions/Current/Commands:
/Applications/Wireshark.app/Contents/MacOS
/Users/apple/Downloads/geckodriver:
/Users/apple/anaconda/bin:

值是用:分割的目录 当我们在shell中敲如命令后,shell就会尝试在上述目录中寻找可执行程序 java javac就在/usr/bin目录中。 前面几个是系统自带,区别见

which [commond_name]

输出可执行程序所在目录

$ which java
/usr/bin/java

测试1:编写一个可执行程序,放在/usr/local/bin中,尝试直接在命令行打开。

编译hello 程序

$ hello
-bash: hello: command not found

现在将程序放在/usr/local/bin

$ hello
Hello, World!

bingo! (不能操作/usr/bin 静默错误 去。。)

测试2: 将一个目录添加到PATH

http://victorwmh.iteye.com/blog/1074854

看来PHP变量就是借鉴shell的,激活用这个命令

source ~/.bashrc
$ pwd
/Users/apple/Desktop/bts
$ vi  ~/.bash_profile
$ source ~/.bashrc
$ hi
Hello, World!

.bash_profile 文件

export PATH="/Users/apple/anaconda/bin:$PATH"
PATH="/Users/apple/Downloads/geckodriver:$PATH"
PATH="/Users/apple/Desktop/bts:$PATH"
export PATH

PATH 存放的目录

Mac配置环境变量的地方

 1./etc/profile   (建议不修改这个文件 )
 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

 2./etc/bashrc    (一般在这个文件中添加系统级环境变量)
 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

 3.~/.bash_profile  (一般在这个文件中添加用户级环境变量)
 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

http://elf8848.iteye.com/blog/1582137

saltfish666 commented 6 years ago

参考

http://os.51cto.com/art/201108/285338.htm

saltfish666 commented 6 years ago

classpath

我曹你妈,一晚上都没找到

echo $CLASSPATH

$ export
declare -x Apple_PubSub_Socket_Render="/private/tmp/com.apple.launchd.lv01yPYJ5W/Render"
declare -x DISPLAY="/private/tmp/com.apple.launchd.H9UfoMAMts/org.macosforge.xquartz:0"
declare -x GOPATH="/Users/apple/go/src/calcproj"
declare -x HOME="/Users/apple"
declare -x LC_CTYPE="UTF-8"
declare -x LOGNAME="apple"
declare -x NVM_CD_FLAGS=""
declare -x NVM_DIR="/Users/apple/.nvm"
declare -x NVM_RC_VERSION=""
declare -x OLDPWD="/"
declare -x PATH="/Users/apple/Desktop/bts:/Users/apple/Downloads/geckodriver:/Users/apple/anaconda/bin:/Users/apple/Downloads/geckodriver:/Users/apple/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS"
declare -x PWD="/Users/apple/Desktop/bts"
declare -x SECURITYSESSIONID="186a6"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.DlULZLINSq/Listeners"
declare -x TERM="xterm-256color"
declare -x TERM_PROGRAM="Apple_Terminal"
declare -x TERM_PROGRAM_VERSION="388.1.1"
declare -x TERM_SESSION_ID="266F2F8C-31A6-46FB-A600-0EA2B6A7C7EB"
declare -x TMPDIR="/var/folders/vm/n4myfnyx0gxc0pt2vgqgqhzc0000gn/T/"
declare -x USER="apple"
declare -x XPC_FLAGS="0x0"
declare -x XPC_SERVICE_NAME="0"
declare -x __CF_USER_TEXT_ENCODING="0x1F5:0x0:0x0"

$ cat /etc/profile
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

$ cat /etc/bashrc
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize

[ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

javac 你他妈到哪里找的JDK???

尝试的方法


$ vi  ~/.bash_profile
#改了也没用

$ vi  ~/.bash_profile
#改不了
saltfish666 commented 6 years ago

想要编译一个 servlet 只能

javac -sourcepath /usr/local/apache-tomcat-8.5.29/webapps/examples/WEB-INF/classes:. -cp /usr/local/apache-tomcat-8.5.29/lib/servlet-api.jar Saltfish.java

前一个目录寻找util 包,后者寻找 servlrt 包