将一个文件传递给另一个具有相同JAR文件的机器



这是我的问题。

我的软件包设置为:

-src
---- foo
-------- code.java    
---- foo.data
-------- files I need to access

目前,我有一个罐子,里面包含了我需要访问的所有上述文件。我将在我的机器上运行这些代码,并将在我机器上初始化的File对象发送到另一台运行相同jar的机器。

我的问题是,如何获得数据文件的相对路径,以便当我将file对象发送到另一台机器时,它们知道要在jar中查找?

我需要访问数据文件,以便对其执行方法。因此,我需要用它创建一个新的文件(相对/path/to/jar/data/files),然后我将把file对象传递给另一台计算机进行计算。

目前我已经能够使用getClass().getResource("data/"+"filename").getPath(),这给了我一个类似文件的路径:/pathtojar/pathtofileinjar/我认为它将能够在另一台机器中找到jar,但当我试图使用jar中的项时,我得到了空指针。jar中的文件可以使用吗?或者有解决方法吗?

为什么不发送jar中文件的相对路径,而不是file?然后,另一个程序可以使用该路径并从jar中读取数据。

你能试试绝对路径吗,比如:

package resourcetest;
import java.net.URL;
public class ResourceTest {
    public static void main(String[] args) {
        new ResourceTest().test();
    }
    private void test() {
        URL res = this.getClass().getResource("/data/data.txt");
        System.out.println(res);
    }
}

这里我要访问的数据文件是data/data.txt

src\resourcetest\resourcetest.class(此类运行并尝试访问data/data.txt
src\data\data.txt

相关内容

最新更新