【问题标题】:How can I get path java source code in runtime?如何在运行时获取路径 java 源代码?
【发布时间】:2019-01-30 07:00:01
【问题描述】:

有没有办法在运行时获取 Java 源代码的路径?

Python 可以使用下面的代码在运行时获取它的路径

import os
file_path = (os.path.dirname(os.path.realpath(__file__)) )

很多人说我可以使用System.getProperty("user.dir")new File(".").getAbsolutePath() 获取路径。
但是这两个方法都返回了java源代码执行的路径……

例如,如果源代码在/User/Desktop/Project/src/test.java 并在/User/Desktop 处执行,则返回/User/Desktop 而不是/User/Desktop/Project/src/test.java

有没有办法获取源文件的路径?
⋇这个java文件作为servlet处理AJAX请求


加法-查找源代码路径的目的

我编写了python脚本并使用Runtime().getRuntime().exec()执行它。
我想找到没有绝对路径的 python 脚本(我不喜欢路径硬编码)。
所以我正在尝试查找java源代码路径并根据java路径计算python源代码路径。

【问题讨论】:

  • 当您运行程序时,源代码的位置并不重要。请询问如何实现您真正想要做的事情。您是否出于某种原因尝试读取您的 java 文件?您是否正在尝试读取配置/属性文件?
  • @ernest_k 更新了我的问题

标签: java servlets path


【解决方案1】:

您不能在 java 中执行此操作,因为(与 Python 不同)java 是编译语言,源代码通常不捆绑在应用程序中。

【讨论】:

  • 正如我在问题中提到的,这个 java 源代码是处理 POST AJAX 请求的 servlet。我可以通过使用ServletContext context = getServletContext(); 来获取servlet 上下文那么,当计算机更改时context.getRealPath 是否正确更改?
  • @Damotorie 是的。但它不指向源代码(未与应用程序一起部署)。
【解决方案2】:

也许我们可以使用脚本“echo $PATH”,如果您在 Linux 上运行,它将打印包含“JAVA_HOME”的整个路径。 Windows 的批处理脚本是“where java”,它将返回 java 的路径。 希望它可以帮助你。

【讨论】:

  • @talex 我猜,我的问题很混乱,因为 JAVA 使用 JAVA_PATH 环境变量
  • @Damotorie java 不使用JAVA_PATH 环境变量。
  • @talex 是的,你的权利,我很困惑,Java 对我来说还是不熟悉
猜你喜欢
  • 2015-11-06
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2023-03-08
  • 2018-05-30
  • 1970-01-01
相关资源
最近更新 更多