V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  james122333  ›  全部回复第 32 页 / 共 65 页
回复总数  1283
1 ... 28  29  30  31  32  33  34  35  36  37 ... 65  
2023-07-22 17:05:53 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
@random1221

然后不只 java 很多东西都可以这样搞 两个档是可以合并 但脚本会杂一点 我看过 jenv 複杂很多的东西 不够轻量
2023-07-22 16:43:16 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
@random1221

意思是不用使用複杂依赖多或非原生的方式就可以实现
以上写的脚本也不用写入.bash_profile
2023-07-22 08:02:45 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
以上可以捨弃肥大的工具
2023-07-22 07:49:38 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
倒数 25 行 2 改 l
2023-07-22 07:33:13 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
/usr/bin/jdkrun

#!/usr/bin/env bash

function err {
echo "$@" >&2
}

function help {
err "$0 -a(add) [JAVA_HOME]/-r(remove) [JAVA_HOME]/-l(list)/-d [JAVA_HOME] [bash arg...]"
}

function parse_config {
if [[ ! -f "$jdk_versions_file" || ! -r "$jdk_versions_file" ]] ; then
rm -Rf "$jdk_versions_file"
: > "$jdk_versions_file"
else
local l
while read -r l
do
jdks[${#jdks[@]}]="$l"
done < "$jdk_versions_file"
fi
}

function list_versions {
local i=-1
while let "++i < ${#jdks[@]}"
do
echo "${jdks[i]}"
done
}

function check_added_version {
local i=-1 v="$1"
v="${v## }"
v="${v%% }"
if [[ ! -z "$v" ]] ; then
while let "++i < ${#jdks[@]}"
do
[[ "${jdks[i]%\/}" == "${v%\/}" ]] && return 0
done
else
return 0
fi
return 1
}

function delete_version {
local i=-1
while let "++i < ${#jdks[@]}"
do
[[ "${jdks[i]%\/}" != "${1%\/}" ]] && echo "${jdks[i]%\/}"
done > "${jdk_versions_file}"
return 1
}

function main {
local jdk_versions_file="$HOME/.jdk_versions" jdks=()
parse_config
if [[ "$1" == -d ]] ; then
shift
case "$1" in
""|-*)
local i IFS=$'\n'
select i in ${jdks[@]}
do
exec jdksh -d "$i" "$@"
done
unset IFS
;;
*)
if check_added_version "$1" ; then
local d="$1"
shift
exec jdksh -d "$d" "$@"
else
err "$0: no such jdk version!"
return 1
fi
;;
esac
return 1
fi
case "$#" in
2)
case "$1" in
-a)
check_added_version "$2" || echo "${2%\/}" >> "${jdk_versions_file}"
;;
-r)
delete_version "$2"
;;
*)
help
;;
esac
;;
1)
case "$1" in
-a)
local l
read -p "Please input JAVA_HOME directory: " -r l
check_added_version "$l" || echo "${2%\/}" >> "${jdk_versions_file}"
;;
-r)
local i IFS=$'\n'
select i in ${jdks[@]}
do
delete_version "$i"
break
done
;;
-l)
list_versions
;;
*)
help
;;
esac
;;
*)
help
;;
esac
}

main "$@"
2023-07-22 05:13:20 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
local JAVA_HOME 前改成 local JAVA_HOME PATH 更好
2023-07-22 05:04:42 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
没有 bash 选项就是纯开终端
2023-07-22 05:01:22 +08:00
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
很简单 随便写个很不重要的 wrapper 就搞定(不重要分享一下)
要选项挑选请自行写另外一隻程序
使用方式就是

/usr/bin/jdksh -d JAVA_HOME 位置 剩下的 bash 参数...(如-c "java -version")

#!/usr/bin/env bash

function err {
echo "$@" >&2
}

function help {
err "$0 -d JDK_HOME [bash arg...]"
}

function check_jdk_home {
local bins=(java javac)
if [[ -d "$1" && -x "$1" ]] ; then
local i
for i in ${bins[@]}
do
if [[ ! -f "$1/bin/$i" || ! -x "$1/bin/$i" ]] ; then
err "$0: $1/bin/$i program not found!"
return 1
fi
done
return 0
fi
return 1
}

function set_jdk_home {
if [[ -d "$1" && -x "$1" ]] ; then
cd "$1"
export JAVA_HOME="$PWD"
export PATH="$JAVA_HOME"/bin:$PATH
cd - > /dev/null
return 0
fi
return 1
}

function parse_args {
while let $#
do
case "$1" in
-d)
shift
case "$1" in
""|-*)
err "$0: directory not defined!"
[[ "$1" == -* ]] && continue
;;
esac
check_jdk_home "$1" && set_jdk_home "$1"
;;
*)
args[${#args[@]}]="$1"
;;
esac
shift
done
if [[ -z "$JAVA_HOME" ]] ; then
err "$0: JAVA_HOME not defined!"
exit 1
fi
}

function main {
trap help EXIT
local JAVA_HOME args=()
parse_args "$@"
exec bash "${args[@]}"
}

main "$@"
2023-06-28 18:10:25 +08:00
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
@Cyrix686

先进? 这是另一种易语言...
易语言之流都不是深得中华文化精髓
2023-06-28 18:01:33 +08:00
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
@Askiz

有这回事? 不是都在讲吗?
2023-06-28 05:34:43 +08:00
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
这也是我很爱 shell 的原因
2023-06-28 05:32:58 +08:00
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
几有意思 不过有种易语言的感觉
不是非常之好 中文就是要用命令式语句 弄一堆括号就西化了
shell 都可以这样做 函数可以中文 然后是命令接近自然语言式
2023-06-26 19:35:45 +08:00
回复了 mikewang 创建的主题 Windows 在 Windows 系统,如何防止软件窥屏?
这是在钓我吗? 真的是 以后都不讲什么了
2023-06-26 03:33:37 +08:00
回复了 LongLights 创建的主题 Android 现在大家用安卓还会 root 吗?会掉指纹支付和 windvine 等级吗
而且不 root 很多开源的东西都不能用 限制也多
2023-06-26 03:32:04 +08:00
回复了 LongLights 创建的主题 Android 现在大家用安卓还会 root 吗?会掉指纹支付和 windvine 等级吗
一开始会 root
后来觉得没必要 但这应该是幻觉
现在觉得这只是因为硬件提升了导致原来卡住问题不明显 有 root 移动 app 很方便
2023-06-26 03:26:09 +08:00
回复了 fox0001 创建的主题 Linux [聊聊]红帽限制对 RHEL 源代码的访问,被评价为破坏生态…
计算机世界越来越複杂了 开源不意谓着你主导自己的系统
2023-06-26 03:23:25 +08:00
回复了 fox0001 创建的主题 Linux [聊聊]红帽限制对 RHEL 源代码的访问,被评价为破坏生态…
以前我会觉得很不好
现在我更喜欢
Eating your own dog food
https://zh.m.wikipedia.org/zh-cn/%E5%90%83%E8%87%AA%E5%B7%B1%E7%9A%84%E7%8B%97%E7%B2%AE
限制多很不方便的
2023-06-25 22:29:07 +08:00
回复了 albin504 创建的主题 程序员 在找工作, PHP 岗位没了,为了转 Java 大幅降薪值得吗?
漂亮、优雅且悠閑的解决问题才够飘逸
2023-06-25 21:55:53 +08:00
回复了 albin504 创建的主题 程序员 在找工作, PHP 岗位没了,为了转 Java 大幅降薪值得吗?
至于如何保证代码不被偷看 这就看你自己的想法
2023-06-25 21:49:49 +08:00
回复了 albin504 创建的主题 程序员 在找工作, PHP 岗位没了,为了转 Java 大幅降薪值得吗?
你说的 java 那些东西 php 也都可以
至于微服务 spring cloud 我觉得是很丑的东西
虽然我写 java 但心裏话就是如此
fastcgi 原生就是分布式 也就是可以微服务
只是一般喜欢把 apache nginx 等一起绑定
让你忽略它其实可以这么做
当然你 php 自己搞个也可以
1 ... 28  29  30  31  32  33  34  35  36  37 ... 65  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1539 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.