Java-从NB平台应用程序

时间:2017-01-20 12:26:35

标签: java file netbeans netbeans-platform

我有以下代码,

public void vbsCalled() {
        try {
            String file = "src\\com\\first\\hello\\hello.vbs";
            Runtime.getRuntime().exec("wscript " + file + " ");
        } catch (IOException ex) {
            Logger.getLogger(RunVBS.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

我正在使用 netbeans IDE,

情景1:

  1. 我创建了一个新的java项目(New Project - > Java - > Java Application)
  2. 项目结构如下所示,

    --Java Application1
      -Source Packages
        -com.first.hello //Package
           -ClassWhichHaveVbsCalledMethod.java
           -hello.vbs
    

    这可以从同一个包中调用hello.vbs而没有错误。

    情景2:

    1. 我创建了一个netbeans平台应用程序(新项目 - > Netbeans模块 - > NetBeans平台应用程序)
    2. 项目结构如下所示,

      enter image description here

      RunVBS.java具有vbsCalled()方法,且hello.vbs与方案1位于同一个包中,

      现在,它在

      中查找文件
        

      " C:\应用1 \ SRC \ COM \第一\你好\ hello.vbs"

      显示找不到此类文件错误

      如何像在scenario1中一样在netbeans平台应用程序中加载文件。

1 个答案:

答案 0 :(得分:0)

  1. 在项目的根目录中创建一个名为release
  2. 的文件夹
  3. 将hello.vbs移至发行/文件夹
  4. 使用InstalledFileLocator类获取文件的运行时路径。
  5. 这就是你的vbsCalled()方法的样子。

    public void vbsCalled() {
        try {
            File file = InstalledFileLocator.getDefault().locate(
                          "hello.vbs", // filename relative to the release/ directory
                          "com.first.hello", // Your module's code name base __not package!__
                          false);
            Runtime.getRuntime().exec("wscript " + file.getAbsolutePath() + " ");
        } catch (IOException ex) {
            Logger.getLogger(RunVBS.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

    有关详细信息,请参阅DevFaqInstalledFileLocator