Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找.java源文件对应的.classpath文件_Java_File_Classpath_Filetree - Fatal编程技术网

查找.java源文件对应的.classpath文件

查找.java源文件对应的.classpath文件,java,file,classpath,filetree,Java,File,Classpath,Filetree,假设我有一个java文件C:\workspace\project\src\packagename\foobar.java。现在,我想在运行时编译这个文件,但为此我需要相应的.classpath文件(或者更确切地说,它的条目),位于C:\workspace\project\.classpath,这样我就可以用-classpath参数传递依赖项(如果我硬编码的话,这种方法是有效的,但这显然只是概念的证明,而不是目标) 如何查找.classpath文件 我的想法是从foobar.java开始,沿着文件

假设我有一个java文件
C:\workspace\project\src\packagename\foobar.java
。现在,我想在运行时编译这个文件,但为此我需要相应的
.classpath
文件(或者更确切地说,它的条目),位于
C:\workspace\project\.classpath
,这样我就可以用
-classpath
参数传递依赖项(如果我硬编码的话,这种方法是有效的,但这显然只是概念的证明,而不是目标)

如何查找
.classpath
文件

我的想法是从
foobar.java
开始,沿着文件树自下而上走,直到我到达一个
.classpath
文件的层次,然后我就可以使用它了


但是,我不确定a)这是否是执行此操作的方法,b)不确定如何自底向上遍历文件树,而不是
String.split
-从末尾开始拆分文件并删除段。不过,这太难看了,我不相信没有更好的选择。

听起来你在问如何编写理解eclipse项目目录布局和结构的Java代码。然后“模拟”eclipse并为您编译文件

这可能是一个非常糟糕的主意。你看,除非你只谈论非常小的和“减少”的项目,否则你迟早会遇到大型的项目,每个项目都有点不同。你会不断地尝试把事情做好,每次你修复了一个bug,另一个项目就会出现,新的东西就会出现,你的解决方案就会崩溃。因为除非您使用eclipse构建代码,否则无法获得该构建代码的健壮“副本”

因此,我建议:

  • 图3:是否有一种方法可以通过命令行驱动eclipse(或您正在讨论的任何IDE项目文件)。使用知道如何构建这些东西的构建代码。请参见如何为eclipse执行此操作
  • 看看是否有可能将这些项目更改为具有maven/gradle构建配置。因为这样你就可以很容易地用maven/gradle构建这个东西了

蚂蚁呢?我的意思是,如果我不想使用maven或gradle…@zlakad好吧,现在是2018年,不是吗?蚂蚁当然是一个选择,但感觉更像2005年。意思:当你现在开始考虑构建系统时,选择ant可能表明解决方案有些可疑。是的,但我有一种强烈的感觉,当我们切换到JDK 9+时,所有这些工具都将过时。项目确实有渐变构建文件。我想做的是进行一些测试,应用一系列执行一些基本替换操作的正则表达式,然后再次执行更改后的测试,以查看是否发生任何错误。如果是这样,我将在Eclipse中打开失败的测试。无论如何,我也不知道如何在运行时使用gradle构建项目。您知道一个好的开始位置吗?首先打开一个命令shell并手动运行gradle。我相信你的意思是对你的答案发表评论,尽管^^^@GhostCat你将被赦免你的罪过:P