V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  james122333  ›  全部回复第 13 页 / 共 46 页
回复总数  914
1 ... 9  10  11  12  13  14  15  16  17  18 ... 46  
如果是认真的 自己研究 因为网上教程都是八古文
包含 chatgpt 写的都是 不美观写的又不好
273 天前
回复了 kachu673 创建的主题 Java Spring 开发,流程冗余
自己写不然就换
273 天前
回复了 bluecube13 创建的主题 程序员 SpringBoot 如何优雅的实现动态更新配置?
这么做的好处是本机都可以检查
手刻党才是王道
273 天前
回复了 bluecube13 创建的主题 程序员 SpringBoot 如何优雅的实现动态更新配置?
不要用 spring 自己写 整天 api 呼叫来呼叫去服务太多看起来有点傻
最简单就是挂载一个网路硬盘 侦测档案变化读入即可
可以用 Java watchservice
275 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
@msg7086

我上面已经说了 多了包讯息(含包名 依赖 说明 协议...)和档案清单以及安装事前后脚本
这部分搞好其实就是自己写了包管理
档案清单其实不是很必要因为解压就可以列出来了
这太王八了 差不多要弃用了
276 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
打错 是 7z l
276 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
@v2eb

tar.gz 与 deb rpm 没有本质差异 都是打包加压缩
你用 7zip 列出就知道
7z -l test.deb
7z -l test.rpm
deb 会显示本来就是 xz 压缩 里头有个 tar
rpm 会显示里头有个 cpio.zstd 档 cpio 打包 zstd 压缩
tar vs cpio 也是一种战争 通常只是差在有无包管理需要的说明与档案清单和安装事后脚版本
尤其维护某专案 webdav 我都快累死了
我一开始都是只用两个 method
resource 区分 后来知道 restful 也很少用 restful
基本没不同 如果 webserver 没问题
webdav 我不喜欢这东西 新增 method 可以 但 xml 格式不能忍
@ytmsdy

这个大概是因为 1024 以下要 root 权限 webserver 如果有问题会悲据 可能会转发或不用了
281 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
@random1221

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

意思是不用使用複杂依赖多或非原生的方式就可以实现
以上写的脚本也不用写入.bash_profile
281 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
以上可以捨弃肥大的工具
281 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
倒数 25 行 2 改 l
281 天前
回复了 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 "$@"
281 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
local JAVA_HOME 前改成 local JAVA_HOME PATH 更好
281 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
没有 bash 选项就是纯开终端
281 天前
回复了 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 "$@"
305 天前
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
@Cyrix686

先进? 这是另一种易语言...
易语言之流都不是深得中华文化精髓
1 ... 9  10  11  12  13  14  15  16  17  18 ... 46  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3233 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 12:12 · PVG 20:12 · LAX 05:12 · JFK 08:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.