程序目录路径 和 当前工作目录路径
程序目录路径 和 当前工作目录路径“程序所在目录”程序执行文件所在的目录。“当前工作目录”操作系统启动程序的目录。操作系统如何决定当前目录Windows通过资源管理器进入到程序所在目录通过双击可执行文件打开程序时当前工作目录既为当前资源管理器显示目录。由于看见才能执行因此当前工作目录正好是程序所在目录。通过命令窗口执行命令启动程序当前工作目录即为命令窗口当前所示路径。如果用户启动程序之前 通过 CD 命令 切换到了程序所在的目录当前工作目录正好在程序所在目录如果 CD 到了另外位置通过相对或绝对路径 启动程序当前工作目录在另外位置。通过快捷方式启动程序快捷方式 目标 是程序所在位置快捷方式 起始位置 是当前工作目录与快捷方式所在位置无关。执行快捷方式启动程序相当于先执行 CD 命令切换到起始位置然后启动目标程序。通过双击特定文件扩展名的文件 启动已注册关联的程序时程序所在目录是注册表中指定的程序位置当前工作目录是要打开的文件所在位置。通过 任务管理器 运行新任务当前工作目录为 指定的执行文件所在目录。Linux通过命令终端窗口 启动程序当前工作目录即为命令窗口当前所示路径。如果用户在启动程序之前 cd 的位置正好是程序所在目录那么当前工作目录正好是程序所在目录如果位于其他位置当前工作目录则不同于程序所在目录。启动注册的 systemctl 服务程序当前工作目录为 服务文件(***.service)中的WorkingDirectory所指定的路径位置。在 Linux 中 通过桌面图标启动程序时当前工作目录 为 程序注册文件(***.desktop)中Path所指定的路径位置。Java 获取当前工作目录Java 程序启动后以相对路径打开的文件指向当前目录中的文件。// 当前目录/config.properties final File file new File(config.properties); // 当前目录/data/device.odbs final File file new File(data/device.odbs); // 当前目录绝对路径 System.out.println(new File().getAbsolutePath()); // D:\JOYZL\scada\server System.out.println(new File(.).getAbsolutePath()); // D:\JOYZL\scada\server\. System.out.println(Path.of().toAbsolutePath()); // D:\JOYZL\scada\server System.out.println(Path.of(.).toAbsolutePath()); // D:\JOYZL\scada\server\.Java 获取程序所在目录Java 程序未提供 标准 API 获取程序所在目录原则上 程序不应当 非要读取 此位置的文件。随同程序一并分发的非程序文件应当纳入资源按程序资源读取。关于 Java 的 System.getProperty(“user.dir”) 可通过命令行参数指定其位置它不代表程序所在目录。默认行为与操作系统相同由 JVM 提供默认值。如果非要不可只能通过系统环境参数提取 System.getProperty(name)且目前只发现以下唯一个 可能的选择。JPackage 打包后的可执行程序具有以下参数jpackage.app-path指向可执行程序位置例如D:\JOYZL\scada\station.exe以下为 AI 提供的错误答案Application.class.getProtectionDomain().getCodeSource().getLocation();实际获取到的是包或模块位置例如// jrt:/com.joyzl.scada.serverManagementFactory.getRuntimeMXBean().getInputArguments()获取的是 JVM 启动参数启动可能包含 “-Duser.dir” 或 “-Djpackage.app-path”以上是我们在参与 JOYZL SCADA 项目开发时对 程序目录路径 和 当前工作目录路径 基于 Java 的验证。

相关新闻

Spring Boot项目简易上线:JDK8与Maven环境下的可靠发布实践

Spring Boot项目简易上线:JDK8与Maven环境下的可靠发布实践

1. 为什么“简易上线”不是一句空话,而是压在每个Java后端开发者肩上的真实重量“项目简易上线的流程”——这七个字看起来平平无奇,甚至有点像新手教程的标题。但如果你真在凌晨两点盯着CI流水线卡在mvn clean package那一步,或者刚把jar包扔…

2026/7/15 4:31:54阅读更多 →
机器人开发--主流二维激光SLAM算法实战选型指南

机器人开发--主流二维激光SLAM算法实战选型指南

1. 二维激光SLAM算法选型核心指标刚入行做机器人开发那会儿,我最头疼的就是面对Hector、Gmapping这些开源算法不知如何选择。后来踩过无数坑才明白,选型必须紧扣四个硬指标:环境适应性、硬件兼容性、实时性要求和地图精度需求。比如给扫地机器…

2026/7/15 4:31:54阅读更多 →
AI Agent性能测量实战:响应时间、准确率与吞吐量的工程化评估

AI Agent性能测量实战:响应时间、准确率与吞吐量的工程化评估

1. 项目概述:为什么AI Agent的性能指标如此重要?如果你正在开发或部署一个AI Agent,无论是智能客服、代码助手还是数据分析工具,你肯定不止一次被问过:“它快吗?准吗?能扛住多少用户&#xff1f…

2026/7/15 4:31:54阅读更多 →
Windows Home Server 2011安装指南:兼容性、驱动与家庭服务器部署

Windows Home Server 2011安装指南:兼容性、驱动与家庭服务器部署

如果你在整理旧设备时翻出一台还能开机的老电脑,或者想用最低成本搭建一个家庭文件备份和远程访问环境,可能会想到十年前那个专为家庭设计的服务器系统——Windows Home Server 2011。虽然它早已在2016年停止支持,但在某些特定场景下&#xf…

2026/7/15 5:16:57阅读更多 →
基于Qt C++的配置文件编辑器:实现数据与UI双向绑定的工程实践

基于Qt C++的配置文件编辑器:实现数据与UI双向绑定的工程实践

1. 项目概述:为什么我们需要一个自己的配置文件编辑器?在桌面软件开发中,配置文件(如INI、JSON、XML、YAML)是连接程序与用户的桥梁。它们存储着程序的设置、用户偏好、运行参数等关键信息。然而,对于非技术…

2026/7/15 5:16:57阅读更多 →
实测对比:SDIO与SPI读写SD卡,速度差距究竟有多大?

实测对比:SDIO与SPI读写SD卡,速度差距究竟有多大?

1. SDIO与SPI接口基础对比第一次接触SD卡开发时,我也曾纠结该选SPI还是SDIO接口。这两种接口虽然都能读写SD卡,但底层设计理念完全不同。SPI就像单车道乡村公路,而SDIO则是四车道高速公路。具体差异主要体现在三个方面:物理连接上…

2026/7/15 5:16:57阅读更多 →
基于NLP的体育新闻文本分析:从实体识别到情感分析的完整实战指南

基于NLP的体育新闻文本分析:从实体识别到情感分析的完整实战指南

最近在开发一个需要处理国际体育赛事数据的项目时,遇到了一个典型的技术难题:如何从非结构化的体育新闻文本中准确提取关键信息,比如比赛结果、球员表现和赛后评论。这类文本往往包含大量口语化表达和复杂句式,传统的关键词匹配方…

2026/7/15 5:16:57阅读更多 →
vivado 加密

vivado 加密

Vivado / Xilinx FPGA 的 bitstream 加密,常见核心是: AES 加密 具体用哪种,要看 FPGA 系列。 ## 1. 7 系列 / Kintex-7 / Artix-7 / Virtex-7 / Zynq-7000 常用: AES-256-CBC 也就是 256bit AES 密钥加密 bitstream。 key 可…

2026/7/15 5:16:57阅读更多 →
小熊猫C++调试模式下输出换行异常:原理分析与解决方案

小熊猫C++调试模式下输出换行异常:原理分析与解决方案

1. 项目概述:一个看似简单却令人抓狂的调试难题如果你正在使用小熊猫C进行嵌入式或控制台程序的开发,并且发现程序在调试模式下运行时,主控台(Console)的输出变得一团糟——比如本该换行的地方没有换行,或者…

2026/7/15 5:11:57阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →