V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  james122333  ›  全部回复第 39 页 / 共 71 页
回复总数  1420
1 ... 35  36  37  38  39  40  41  42  43  44 ... 71  
2023 年 7 月 22 日
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
倒数 25 行 2 改 l
2023 年 7 月 22 日
回复了 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 年 7 月 22 日
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
local JAVA_HOME 前改成 local JAVA_HOME PATH 更好
2023 年 7 月 22 日
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
没有 bash 选项就是纯开终端
2023 年 7 月 22 日
回复了 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 年 6 月 28 日
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
@Cyrix686

先进? 这是另一种易语言...
易语言之流都不是深得中华文化精髓
2023 年 6 月 28 日
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
@Askiz

有这回事? 不是都在讲吗?
2023 年 6 月 28 日
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
这也是我很爱 shell 的原因
2023 年 6 月 28 日
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
几有意思 不过有种易语言的感觉
不是非常之好 中文就是要用命令式语句 弄一堆括号就西化了
shell 都可以这样做 函数可以中文 然后是命令接近自然语言式
2023 年 6 月 26 日
回复了 mikewang 创建的主题 Windows 在 Windows 系统,如何防止软件窥屏?
这是在钓我吗? 真的是 以后都不讲什么了
而且不 root 很多开源的东西都不能用 限制也多
一开始会 root
后来觉得没必要 但这应该是幻觉
现在觉得这只是因为硬件提升了导致原来卡住问题不明显 有 root 移动 app 很方便
计算机世界越来越複杂了 开源不意谓着你主导自己的系统
以前我会觉得很不好
现在我更喜欢
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
限制多很不方便的
漂亮、优雅且悠閑的解决问题才够飘逸
至于如何保证代码不被偷看 这就看你自己的想法
你说的 java 那些东西 php 也都可以
至于微服务 spring cloud 我觉得是很丑的东西
虽然我写 java 但心裏话就是如此
fastcgi 原生就是分布式 也就是可以微服务
只是一般喜欢把 apache nginx 等一起绑定
让你忽略它其实可以这么做
当然你 php 自己搞个也可以
2023 年 6 月 25 日
回复了 lvii 创建的主题 Linux Red Hat 限制 RHEL 源码可得性,源码仅通过 CentOS Stream 公开
@feather12315

"self-hosted" "self-hosted" "self-hosted"
重要的事情说三次 代码上并不是减少而是自带
直接自带一个版本并维护 自带的可能是全部可能是部份 最终达成的效果就是减少外部依赖和减少不同发行版以及版本的不同造成的相容性问题
2023 年 6 月 24 日
回复了 lvii 创建的主题 Linux Red Hat 限制 RHEL 源码可得性,源码仅通过 CentOS Stream 公开
@feather12315

给我选我两个都不会选 ubuntu 也好 centos 也好甚至 debian 也好
都不会
2023 年 6 月 24 日
回复了 lvii 创建的主题 Linux Red Hat 限制 RHEL 源码可得性,源码仅通过 CentOS Stream 公开
@feather12315

我说的不是 vm 说的 self-hosted 指的是代码
减少依赖来达成 portable 的目标 当然要不要这么做是厂商决定的
但这就是个可行的方向 你这样模糊观点都有点怀疑是不是相关人士
1 ... 35  36  37  38  39  40  41  42  43  44 ... 71  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   974 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
♥ Do have faith in what you're doing.