<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>脚本 on 洛鹿松的小站</title>
        <link>https://www.fufu.me/tags/%E8%84%9A%E6%9C%AC/</link>
        <description>Recent content in 脚本 on 洛鹿松的小站</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sat, 25 Jan 2025 19:22:36 +0800</lastBuildDate><atom:link href="https://www.fufu.me/tags/%E8%84%9A%E6%9C%AC/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>JAVA版本切换脚本</title>
        <link>https://www.fufu.me/javaverchange/</link>
        <pubDate>Sat, 25 Jan 2025 19:22:36 +0800</pubDate>
        
        <guid>https://www.fufu.me/javaverchange/</guid>
        <description>&lt;img src="https://www.fufu.me/img/java-logo.png" alt="Featured image of post JAVA版本切换脚本" /&gt;&lt;p&gt;经常使用java的朋友可以发现，我们需要在一台电脑上部署多种版本的java来运行不同的程序。但是java版本之间的切换很麻烦，要手动更改环境变量的值，所以我写了以下脚本来简化这一过程。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;环境变量的形式是键值对，当值是目录时，在cmd中输入单词时会到path变量的目录下寻找这个词的可执行文件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;@echo off 
::Get Administrator Privileges
%1 mshta vbscript:CreateObject(&amp;quot;Shell.Application&amp;quot;).ShellExecute(&amp;quot;cmd.exe&amp;quot;,&amp;quot;/c %~s0 ::&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;runas&amp;quot;,1)(window.close)&amp;amp;&amp;amp;exit
cd /d &amp;quot;%~dp0&amp;quot;
::Setting Window Size
mode con cols=120 lines=60
title JDK-Version change script of Bat
:menu
echo current jdk version:
java -version
echo.
echo =============================================
echo ################ JDK version-list ################
echo.
echo          [0]  cancel switch
echo          [8]  switch to JDK8
echo          [17] switch to JDK17
echo          [22] switch to JDK22
echo.
echo =============================================
echo.
set /P vb=Please choose need switch JDK versions:
if &amp;quot;%vb%&amp;quot; EQU &amp;quot;8&amp;quot; (
    setx &amp;quot;JAVA_HOME&amp;quot; &amp;quot;C:\Program Files\Java\jdk-1.8&amp;quot; /m
    echo Tips: Successfully switched JDK version, &amp;quot;JAVA_HOME&amp;quot; has been modified C:\Program Files\Java\jdk-1.8.
    pause
    echo.
) else if &amp;quot;%vb%&amp;quot; EQU &amp;quot;17&amp;quot; (
    setx &amp;quot;JAVA_HOME&amp;quot; &amp;quot;C:\Program Files\Java\jdk-17&amp;quot; /m
    echo Tips: Successfully switched JDK version, &amp;quot;JAVA_HOME&amp;quot; has been modified C:\Program Files\Java\jdk-17.
    pause
    echo.
) else if &amp;quot;%vb%&amp;quot; EQU &amp;quot;22&amp;quot; (
    setx &amp;quot;JAVA_HOME&amp;quot; &amp;quot;C:\Program Files\Java\jdk-22&amp;quot; /m
    echo Tips: Successfully switched JDK version, &amp;quot;JAVA_HOME&amp;quot; has been modified C:\Program Files\Java\jdk-22.
    pause
    echo.
) else if &amp;quot;%vb%&amp;quot; EQU &amp;quot;0&amp;quot; (
       goto exit
) else (
    echo.
    echo ! choosing version error, please renew choice ...
    echo.
    goto menu
    pause
)
echo Please press any key to exit.. &amp;amp; pause &amp;gt; nul
:exit
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;脚本本地化&#34;&gt;脚本本地化
&lt;/h2&gt;&lt;p&gt;java的目录结构如下所示，我自己创建了scripts目录，然后把脚本放到了里面，脚本的名字叫jchan.bat&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.fufu.me/javaverchange/images/jcbfbfdihr.png&#34;
	width=&#34;886&#34;
	height=&#34;192&#34;
	srcset=&#34;https://www.fufu.me/javaverchange/images/jcbfbfdihr_hu1343971766474637503.png 480w, https://www.fufu.me/javaverchange/images/jcbfbfdihr_hu6374686705726725311.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;jcbfbfdihr&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;461&#34;
		data-flex-basis=&#34;1107px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;如果路径不同请修改脚本中的语句&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;if &amp;quot;%vb%&amp;quot; EQU &amp;quot;8&amp;quot; (
    setx &amp;quot;JAVA_HOME&amp;quot; &amp;quot;C:\Program Files\Java\jdk-1.8&amp;quot; /m
    echo Tips: Successfully switched JDK version, &amp;quot;JAVA_HOME&amp;quot; has been modified C:\Program Files\Java\jdk-1.8.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;1.其中第一行&lt;strong&gt;EQU 8&lt;/strong&gt;代表输入的数字选项，按照自己的版本情况自行修改。&lt;/p&gt;
&lt;p&gt;2.第二行setx &amp;ldquo;JAVA_HOME&amp;rdquo; &amp;ldquo;C:\Program Files\Java\jdk-1.8&amp;rdquo; /m中&lt;strong&gt;C:\Program Files\Java\jdk-1.8&lt;/strong&gt;表示要写入环境变量键&lt;strong&gt;JAVA_HOME&lt;/strong&gt;的值，所以后面的值要更改成自己java的路径(重要)。&lt;/p&gt;
&lt;p&gt;3.第三行是输出提示，仍然是更改路径即可。&lt;/p&gt;
&lt;h2 id=&#34;环境变量配置&#34;&gt;环境变量配置
&lt;/h2&gt;&lt;p&gt;使用前应该保证在环境变量里添加了如下配置&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.fufu.me/javaverchange/images/hrjybmldpzvi.png&#34;
	width=&#34;840&#34;
	height=&#34;430&#34;
	srcset=&#34;https://www.fufu.me/javaverchange/images/hrjybmldpzvi_hu14842711936301359023.png 480w, https://www.fufu.me/javaverchange/images/hrjybmldpzvi_hu14931228372940344273.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;hrjybmldpzvi&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;195&#34;
		data-flex-basis=&#34;468px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JAVA_HOME&lt;/strong&gt;的值随意，因为在之后切换的过程中会被脚本自己更改，所以只要做好&lt;strong&gt;脚本本地化中的第二步即可&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;classpath按图示配置&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-powershell&#34;&gt;.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;path中添加java的环境变量&#34;&gt;path中添加java的环境变量
&lt;/h2&gt;&lt;p&gt;按图示填入值，注意一定要删除红色框中的值，这是java自己生成的path，会影响版本的切换！&lt;/p&gt;
&lt;p&gt;黑色框的值自己填入，注意第二行，要填自己电脑scripts文件夹的路径。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-powershell&#34;&gt;%JAVA_HOME%\bin
C:\Program Files\Java\scripts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.fufu.me/javaverchange/images/javahrjybmld.png&#34;
	width=&#34;677&#34;
	height=&#34;663&#34;
	srcset=&#34;https://www.fufu.me/javaverchange/images/javahrjybmld_hu13097542337124427959.png 480w, https://www.fufu.me/javaverchange/images/javahrjybmld_hu15380945036405222247.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;javahrjybmld&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;102&#34;
		data-flex-basis=&#34;245px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;配置完毕后，你就可以使用了。&lt;/p&gt;
&lt;p&gt;方法：Win+R-&amp;gt;键入cmd-&amp;gt;jchan(因为前面把脚本命名为了jchan.bat)-&amp;gt;按脚本提示更改版本。&lt;/p&gt;
&lt;h2 id=&#34;文件下载地址jchanbathttpscloudnichttopsp7ua&#34;&gt;文件下载地址：&lt;a class=&#34;link&#34; href=&#34;https://cloud.nicht.top/s/P7ua&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;📄jchan.bat
&lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
    height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
    &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
    &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
        fill=&#34;currentColor&#34;&gt;
&lt;/svg&gt;&lt;/span&gt;

&lt;/a&gt;

&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Vmware虚拟机持久挂载共享文件夹</title>
        <link>https://www.fufu.me/vmpersismount/</link>
        <pubDate>Wed, 22 Jan 2025 11:02:41 +0800</pubDate>
        
        <guid>https://www.fufu.me/vmpersismount/</guid>
        <description>&lt;img src="https://www.fufu.me/img/VMware.png" alt="Featured image of post Vmware虚拟机持久挂载共享文件夹" /&gt;&lt;h2 id=&#34;使用场景&#34;&gt;使用场景
&lt;/h2&gt;&lt;p&gt;在我们使用Vmware的linux虚拟机时，通常需要在宿主机和虚拟机间传输一些文件，这时候用共享文件夹就很不错。但是在设置好后却发现这个文件夹不能自动挂载，一旦关机就消失了。&lt;/p&gt;
&lt;p&gt;这里提供一个我自己写的挂载脚本&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;#!/bin/bash

# 定义 knmpn-share.service 文件内容
SERVICE_CONTENT=$(cat &amp;lt;&amp;lt;EOF

[Unit]
Description=knmpn-share Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/knmpn-share
After=network.target

[Service]
Type=forking
ExecStart=/etc/knmpn-share start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=knmpn-share.service
EOF
)

SHARE_SCRIPT_CONTENT=$(cat &amp;lt;&amp;lt;EOF
#! /bin/bash
# 确保挂载点存在
/bin/mkdir -p /mnt/hgfs

# 执行挂载
/bin/mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
EOF
)

# 创建并写入 knmpn-share.service 文件
echo &amp;quot;$SERVICE_CONTENT&amp;quot; | sudo tee /lib/systemd/system/knmpn-share.service /etc/systemd/system/knmpn-share.service &amp;gt; /dev/null

# 创建并写入 knmpn-share 脚本文件
echo &amp;quot;$SHARE_SCRIPT_CONTENT&amp;quot; | sudo tee /etc/knmpn-share &amp;gt; /dev/null

# 确保 /etc/knmpn-share 可执行
sudo chmod +x /etc/knmpn-share

# 启用并启动 knmpn-share 服务
sudo systemctl enable knmpn-share
sudo systemctl start knmpn-share.service
sudo systemctl status knmpn-share.service

# 重启系统以应用更改
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;使用方法&#34;&gt;使用方法
&lt;/h2&gt;&lt;p&gt;1.创建一个share.sh文件，将代码保存到其中并运行。&lt;/p&gt;
&lt;p&gt;2.当不再显示新内容时按q键，会重启一次&lt;/p&gt;
&lt;p&gt;3.共享文件夹在/mnt/hgfs目录下&lt;/p&gt;
&lt;h2 id=&#34;文件下载地址shareshhttpscloudnichttopsnwfb&#34;&gt;文件下载地址：&lt;a class=&#34;link&#34; href=&#34;https://cloud.nicht.top/s/nwfb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;📄share.sh
&lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34;
    height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
    &lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34; /&gt;
    &lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34;
        fill=&#34;currentColor&#34;&gt;
&lt;/svg&gt;&lt;/span&gt;

&lt;/a&gt;

&lt;/h2&gt;</description>
        </item>
        
    </channel>
</rss>
