当尝试在启动配置中将其用作字符串参数的一部分时,Eclipse 中的路径变量会丢失反斜杠

Posted

技术标签:

【中文标题】当尝试在启动配置中将其用作字符串参数的一部分时,Eclipse 中的路径变量会丢失反斜杠【英文标题】:Path variable in Eclipse on Win losses backslashes, when trying to use it in a launch configuration as part of string argument 【发布时间】:2013-09-24 11:49:46 【问题描述】:

我想创建一个通用启动配置,用于将 Java EE 应用程序部署到 Tomcat 服务器以与其他团队成员共享。 为了实现它,我用变量替换了所有路径。 以下是“Apache Tomcat”启动配置的 VM 参数:

-Dcatalina.base="$workspace_loc/.metadata/.plugins/org.eclipse.wst.server.core/tmp1" -Dcatalina.home="$catalina_home" -Dwtp.deploy="$ workspace_loc/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps" -Djava.endorsed.dirs="$catalina_home/endorsed" -Dservices.properties="dbDriver=org.sqlite .JDBC,dbUrl=jdbc:sqlite:$workspace_loc/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Services/"

所有变量都正确解析,除了最​​后一个,丢失反斜杠:Tomcat 已启动,应用程序运行,但是,当我尝试登录数据库时出现错误:path to 'C:Usersvackovaworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Services/BURZA8P4/BRSTST': 'C:\Program Files (x86)\eclipse\Usersvackovaworkspace' does not exist,因为dbUrl被解析为 jdbc:sqlite:C:Usersvackovaworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Services/BURZA8P4/BRSTST 而不是 jdbc:sqlite:C:\Users\vackova/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Services/BURZA8P4/BRSTST 是否存在一种说法 Eclipse,不删除反斜杠?或者强制使用斜杠而不是反斜杠?

【问题讨论】:

我没有解决转义字符的问题,但如果您使用构建/部署工具,您一开始就不会拥有它(或其他不可避免的问题)。 @his 抱歉,但我仍然看不到转义反斜杠甚至与团队成员共享启动配置与使用构建/部署工具之间的任何关系。顺便说一句,我使用 ivy 进行依赖管理,使用 ant 进行构建,但在开发过程中仍需要从 Eclipse 部署应用程序。 【参考方案1】:

这是因为\ 是一个转义字符。

C:\Users\vackova 应该是C:\\Users\\vackova,或者你应该从配置文件中读取它。

【讨论】:

我知道,但是我没有找到workspace_loc变量定义

以上是关于当尝试在启动配置中将其用作字符串参数的一部分时,Eclipse 中的路径变量会丢失反斜杠的主要内容,如果未能解决你的问题,请参考以下文章

将 iPhone 用作带蓝牙的键盘楔

如何在 C# 中将 E+ 数字从字符串转换为十进制? [复制]

在python中将字符串转换为十六进制

在 Powershell 中将字符串转换为哈希表

尝试在其线程函数参数中将不同的值传递给 openMp 线程

如何在 Rails 中将 Javascript 对象转换为 JSON?