求一个 把 java 程序封装到 U 盘里的方法,程序随插随用,需要的服务包括 mysql,tomcat,nginx,elasticsearch 目前想的方式是用 innosetup 封装成 exe,目前的问题市 将程序安装到 U 盘里盘符不固定,在当前电脑上可以使用,换到另外一台电脑上盘符变了就无法使用了
|  |      1imxthd      2020-09-17 16:30:09 +08:00 那你找到对应盘不就好了吗 比如说在 U 盘中放一个标识文件,就能判断了 | 
|      2wdxm2008      2020-09-17 16:41:21 +08:00 只是盘符不固定吗?想想怎么自动改盘符? | 
|      31406075864 OP 查了一下 盘符是 windows 自动生成的 | 
|  |      4lxk11153      2020-09-17 16:45:49 +08:00 相对路径? | 
|      51406075864 OP @lxk11153 环境变量上要写绝对路径啊 | 
|  |      6ShallowAi      2020-09-17 16:52:33 +08:00 via Android 如果 NSIS 可以额外写插件识别 U 盘修改路径 具体实现尚未尝试 | 
|  |      7qwerthhusn      2020-09-17 16:52:39 +08:00 @1406075864 要啥环境变量,指定相对路径的执行程序就行了 | 
|  |      8VeryZero      2020-09-17 16:53:12 +08:00 U 盘可以放自动运行文件,自动运行以后修改环境变量 | 
|  |      9yidinghe      2020-09-17 17:02:04 +08:00 via Android 编写一个批处理文件,用 setx 命令修改环境变量,插入 U 盘后双击执行一次即可。我真这么干过,打造自己的开发 U 盘,只是读写速度真的慢。 | 
|  |      10lower      2020-09-17 17:02:23 +08:00 同意 7 楼 | 
|      11dddddd      2020-09-17 17:04:07 +08:00 docker | 
|  |      12youla      2020-09-17 17:06:00 +08:00 封装到 docker 镜像不好吗? | 
|  |      13huixia0010      2020-09-17 17:11:34 +08:00 7 楼正解 | 
|      141024potato      2020-09-17 21:12:55 +08:00 docker-compose  mysql nginx  es redis 什么都有了 | 
|      151406075864 OP 忘说了  我需要在 windows 电脑上运行这个 u 盘 | 
|      161406075864 OP 而且 U 盘里边的东西不可复制 | 
|  |      17zzzmh      2020-09-18 10:21:38 +08:00 其他不清楚,就 jar 文件是可以用相对路径来执行的,边上放一个环境,然后写个 bat 脚本就可以了 | 
|  |      18youla      2020-09-18 20:32:22 +08:00 via Android @1406075864 你觉得都不可读,能运行吗? | 
|      191406075864 OP @youla 为啥不可读 | 
|  |      20youla      2020-09-21 08:58:41 +08:00 @1406075864 不能复制的话,肯定不可读啊,如果要运行,肯定要能读取,如果能读取了,你会复制不出来???如果可以这样的话,要加密软件干嘛。 | 
|      211406075864 OP @youla 不能复制并不代表一定不能读吧 | 
|  |      22youla      2020-09-21 16:18:43 +08:00 @1406075864 先假设此文件是个文本文档,你能让它不能复制,只能读取吗? | 
|  |      23youla      2020-09-21 16:19:33 +08:00 @1406075864 即使是只读权限,也只是不能编辑,还是可以复制的。 |