java环境安装软件开发笔记

本文为了凑文章数和作为后续查阅的笔记,看不懂很正常

jdk安装

  1. jdk8 官网只有exe安装版,想要编写桌面端软件傻瓜式安装jdk,需要先把jdk的exe修改为免安装版。(已完成)
  2. 后续需要对jar包进行操作,借助node的插件可能不如jdk中自带工具,所以java环境不要下载jre,需要下载jdk。(已替换)
  3. 对于部署环境而言,jdk不需要配置环境变量,只需要在执行java命令的时候,设置临时变量,或者直接通过命令行进入jdk安装目录,执行相关命令即可,尽量减少对宿主机的依赖。

tomcat安装

  1. 下载免安装版。
  2. 不依赖全局变量的jdk运行tomcat有两种方式:
  • 在catalina.jar中添加tomcat路径配置:“set CATALINA_HOME=C:\Users\Administrator\Desktop\cnde_test\apache-tomcat-8.5.45”;在setclasspath.bat文件中添加jdk路径配置:“set JRE_HOME=C:\Users\Administrator\Desktop\cnde_test\jdk\jre”
  • 在运行tomcat的时候,设置临时变量:
  const commandList=[`set JRE_HOME=${jdkPath}\\jre`,`${filePath}\\bin\\catalina.bat start`]

        return startTomcat(commandList)

注意在运行多个命令时,需要用&&连接:

const cmdCommand=cmdCommandList.join('&&')

本次项目选择第二种方案,理由是tomcat文件参数修改时,不能硬编码修改,就需要后期在程序中修改文件后再执行响应命令,风险增大

  1. tomcat和数据库的一些操作可能需要管理员权限,不论是通过程序还是通过命令行,都需要经过验证身份的步骤,这是系统的安全机制,无法跳过,所以这部分不需要多做处理,让用户使用时,以管理员权限打开软件即可。

  2. 启动tomcat的时候需要借助jdk,运行java程序会在宿主机产生一个java进程,这是不可避免的,除非把软件做成docker自带系统。不过我们可以通过修改setclasspath.bat来修改进程名称:

copy "%JRE_HOME%\bin\javaw.exe" "%JRE_HOME%\bin\CndeJavaw.exe"
set _RUNJAVA="%JRE_HOME%\bin\CndeJavaw.exe"

把_RUNJAVA参数改成我们自己的exe进程,就能既不影响宿主机本身可能已存在的java进程,也能在代码中通过验证进程名来粗略判断tomcat是否启动。
这两句话很简单,就是把javaw.exe改成自定义名称,手动去安装包里复制粘贴后,效果也是一样的。

mysql安装

  1. mysql需要先写个ini初始化配置文件,后面使用命令行注册服务的时候会用到。ini配置文件里能不能省略basedir和datadir参数尚未验证。如果不能,为了实现自定义参数,又要做遍历并修改文件的操作了。
  2. mysql相对简单,因为它和其他环境联系不大,通过命令行实现注册服务、启动服务、关闭服务即可。
  3. mysql初始化后,会有基础数据库,里面有root基础账号,把它的密码清空,方便使用者,后面再把数据库操作加上,让使用者可以傻瓜式修改root密码。
  4. node里的插件mysql2可以便捷连接数据库,类似于java的jdbc,利用它可以查询数据库基础库mysql库的user表,来验证数据库是否安装成功。
  5. 数据库前期初始化的操作没做笔记,所以初始化后的安装包不要丢弃,否则又要做一个,切记。

jar组件安装与properties文件修改

  1. 目前jar包组件的文件遍历、文件修改操作过于繁杂,后期可以考虑如何统一管理,能不能做到遍历一次即可,全生命周期的代码均可操作遍历后的文件。
  2. jar包的配置文件修改,需要设计友好的可视化界面,否则和直接修改properties就没什么区别了。

遗留问题

  1. 目前部分node操作命令行,打印数据仍然有乱码,同项目其他代码打印汉字则无问题,所以可能和命令行操作相关子进程有关,需要解决。

你可能感兴趣的:(前后端便捷工具开发,java,笔记,开发语言,electron)