将文件传递到具有相同JAR文件的另一台计算机

时间:2014-10-20 17:48:31

标签: java jar

这是我的问题。

我的包装设置为:

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

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

我的问题是如何获取数据文件的相对路径,这样当我将File对象发送到另一台机器时,他们知道要查看jar?

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

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

1 个答案:

答案 0 :(得分:1)

为什么不在jar中发送文件的相对路径,而不是文件? 然后另一个程序可以使用该路径并从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.TXT