执行java项目内部文件的最佳方法

执行java项目内部文件的最佳方法,java,Java,假设我的项目结构是: /project /src /java Util.java /cpp /bin a.out 我希望在Util.java中执行a.out,而不必硬编码java文件中的任何绝对路径。做这件事最好的方法是什么 编辑——这里是我最后做的:我碰巧使用的是AutoCONF,因为大多数代码是C++。我在configure.AC中定义了一个替换变量,如AC\u SUBST([project\u root],$(pwd)],并将其替换到Confi

假设我的项目结构是:

/project
  /src
    /java
      Util.java
    /cpp
  /bin
    a.out
我希望在Util.java中执行a.out,而不必硬编码java文件中的任何绝对路径。做这件事最好的方法是什么


<>编辑——这里是我最后做的:我碰巧使用的是AutoCONF,因为大多数代码是C++。我在configure.AC中定义了一个替换变量,如
AC\u SUBST([project\u root],$(pwd)]
,并将其替换到Config.java.in文件中。

您的
a.out
文件路径可以是
。/bin/a.out
。然后使用该路径执行该文件。

根据应用程序的性质,可能使用在部署/运行时加载的属性文件

更多关于它在这个线程中的使用
下面是一些可能对您有所帮助的伪代码

// look for the executable in the current working directory 
File executable = new File("a.out");
if( executable.exists()){
   System.exec() .... etc
} else {
   String location = YourMainClass.class.getProtectionDomain().getCodeSource().getLocation();
   // write code to form a path name to the a.out based on the location of .jar file 
}

您是否将项目部署为JAR?事实上,我将来可能希望部署为JAR。我是否仍需要在属性文件中存储绝对路径?也许您可以在应用程序启动时获取上下文路径,因此您可以从属性添加相对路径。绝对路径也是一个选项