JAVA - 路径问题(在 Eclipse 中有效,在 cmd 中无效)

2024-04-30

为什么下面的启动在 Eclipse 中有效:

private static MaxentTagger maxentTagger = new MaxentTagger("c:\\DP\\lemma\\models\\english-left3words-distsim.tagger");

但在命令行中它会抛出:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.ExceptionInInitializerError
        at dp.beans.MySearch.<init>(MySearch.java:122)
        at dp.runable.Main.main(Main.java:25)
        ... 5 more
Caused by: java.lang.IllegalArgumentException: name
        at sun.misc.URLClassPath$Loader.findResource(Unknown Source)
        at sun.misc.URLClassPath.findResource(Unknown Source)
        at java.net.URLClassLoader$2.run(Unknown Source)
        at java.net.URLClassLoader$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findResource(Unknown Source)
        at java.lang.ClassLoader.getResource(Unknown Source)
        at java.net.URLClassLoader.getResourceAsStream(Unknown Source)
        at edu.stanford.nlp.io.IOUtils.findStreamInClasspathOrFileSystem(IOUtils.java:370)
        at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:399)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:646)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:284)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:248)
        at dp.data.Settings.<clinit>(Settings.java:80)
        ... 7 more

Settings.java:80对应于MaxentTagger引发..

是否有不同的方法来声明 Windows 路径,该方法在 Eclipse 和 cmd 中都有效?

update (the findStreamInClasspathOrFileSystem方法):

private static InputStream  [More ...] findStreamInClasspathOrFileSystem(String name) throws FileNotFoundException 
{
  String path = null;
  if (name.startsWith("/")) {
    path = name.substring(1);
  }

  // - even though this may look like a regular file, it may be a path inside a jar in the CLASSPATH
  // - check for this first. This takes precedence over the file system.
  InputStream is = null;
  if (path != null) {
    is = IOUtils.class.getClassLoader().getResourceAsStream(path);

    // windows File.separator is \, but getting resources only works with /
    if (is == null) {
      is = IOUtils.class.getClassLoader().getResourceAsStream(path.replaceAll("\\\\", "/"));
    }
  }

  // if not found in the CLASSPATH, load from the file system
  if (is == null) is = new FileInputStream(name);
  return is;
}

update:无论我是否将路径更改为:

  "c:/DP/lemma/models/english-left3words-distsim.tagger");
  "c:\\\\DP\\\\lemma\\\\models\\\\english-left3words-distsim.tagger");

它的行为仍然是相同的(在 eclipce 中工作,而不是在 cmd 中工作)


您的代码似乎使用 ClassLoader 从类路径加载资源。该路径应采用以下形式:

com/yourcompany/yourapp/english-left3words-distsim.tagger

where com.yourcompany.yourapp是文件所在的包。

See http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29 http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29

EDIT:

的代码为IOUtils.getInputStreamFromURLOrClasspathOrFileSystem()传递两个格式错误的路径(c:\... and c:/...) 到 ClassLoader.getResourceAsStream(),并期望此方法简单地返回 null 而不是抛出异常,这是错误的。我会简单地决定在哪里加载资源 ROM:要么是类路径(因此使用ClassLosader.getResourceAsStream())或文件系统(因此使用new FileInputStream()).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA - 路径问题(在 Eclipse 中有效,在 cmd 中无效) 的相关文章

随机推荐

  • 我需要在首选项中有一个自定义对话框

    我想要一个自定义对话框 使用布局创建 Preferences 我应该怎么做才能在我的首选项中声明此自定义对话框 实施一个对话框首选项 http developer android com reference android preferen
  • “scipy.misc”没有属性“imsave”

    当我尝试使用 Scipy misc imsave path image 保存图像时 我收到此错误 模块 scipy misc 没有属性 我正在使用 Ubuntu 17 10 并且安装了 Pillow 和 scipy 你能帮我吗 scipy
  • 如何为 JAXB MOXy 编写 JsonStructure (JSR-353) XmlAdaptor?

    我需要将一些任意 JSON 内容包装到 POJO 中 然后使用 MOXy JAXB 序列化为 JSON 但无法弄清楚如何绑定JsonObject与 JAXB 一起 我只需要整理JsonObject 不需要解组 即拥有 POJO XmlRoo
  • java有跳过列表实现吗

    I find ConcurrentSkipListSet http download oracle com javase 6 docs api java util concurrent ConcurrentSkipListSet html在
  • SELECT DISTINCT 和 SELECT UNIQUE 之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 Oracle 9i 中的唯一与不同多列 https stackoverflow com questions 174912 unique vs distinct multi column in orac
  • 确定 IE 中的 HTML 按钮是否被禁用

    我最近正在做一些 VBA 工作 我需要签入网页以单击按钮 如果启用 如果禁用则不要单击 但 我不知道如何让 VBA 检查禁用的按钮 这是按钮代码
  • 订购“混合”向量(带有字母的数字)

    我怎样才能订购像这样的矢量 c 7 10a 10b 10c 8 9 11c 11b 11a 12 gt alph in alph 1 7 8 9 10a 10b 10c 11a 11b 11c 12 并用它对 data frame 进行排序
  • Material UI:“提供给类属性的键未实现”

    我正在使用 withStyles HOC 来覆盖一些 Material UI 组件样式 主题和断点 显然有一些我不明白的地方 因为我不断收到这样的错误 警告 Material UI 关键tab提供给类属性 未在 Items 中实现 您只能覆
  • sizeWithFont: constrainedToSize: with UITextView (有时) 没有创建正确的高度 - iPhone

    我使用以下代码来确定所需的高度UITextView正在添加到UITableViewCell 并确定每个的高度UITableViewCell 这在 90 的情况下有效 但某些传入数据 始终是相同的传入数据 会出现不足 如果我允许在UIText
  • 作曲家转储自动加载和 git

    为了部署实用性 我们决定将供应商目录提交到 git 存储库中 一切正常 但是每次我们运行 Composer dump autoload 时 它都会修改以下文件 这非常烦人 因为它似乎并不代表文件的特定状态 每次重新运行它时它看起来都像一个随
  • 使用 RSpec 测试模块内的类

    所以 我的 ruby 代码中有一个模块 如下所示 module MathStuff class Integer def least factor implementation code end end end 我有一些 RSpec 测试 我
  • 如何在 iOS 中打开 URL 而不指定 HTTP 或 HTTPS?

    在我的 iOS 应用程序中 我使用以下代码打开链接 UIApplication sharedApplication openURL NSURL URLWithString NSString stringWithFormat myurl 链接
  • 如何使用我的服务器作为代理通过 PHP 下载文件?

    我需要我的服务器充当第三方服务器 文件最初所在的位置 和最终用户之间的代理 也就是说 我的服务器从第3方服务器下载文件 然后用户从我的服务器下载它 这将导致产生文件大小两倍的带宽 这个过程如何使用PHP来实现呢 fp fopen url r
  • 如何测试具有多个输入调用的循环?

    我正在尝试测试一个依赖多个用户输入来返回某个值的函数 我已经在这里寻找了多个答案 但没有一个能够解决我的问题 我看到了参数化 模拟和猴子补丁的东西 但没有任何帮助 我认为很大程度上是因为我没有清楚地理解正在做的事情背后的概念 并且我无法适应
  • 如何在python中修改html树?

    假设有一些可变片段html代码 p span class code string 1 span class code string 2 span class code string 3 span span span p p span cla
  • ftplib: 在 LIST 期间/之后出现 socket.error // ssl._sslobj.shutdown() / 连接超时

    我尝试使用客户端证书连接到 FTPS 服务器 我尝试了两台不同的服务器 我无法控制它们 但应该非常相似 连接建立 PWD 命令成功 在一台服务器上 LIST 命令成功 但在第二台服务器上 它产生正确的结果 文件列表 但之后 显然在 SSL
  • 在 Android 中移动目录的最快方法?

    在 Android 中移动目录最快的方法是什么 在大多数情况下 但并非所有情况 源和目标位于同一 SD 卡文件系统上 目前 我的代码遍历整个目录结构 并将每个文件的内容复制到新位置的同名新文件中 然后它会验证文件大小是否匹配 然后删除源文件
  • 如何自定义 magento onepage 结账表单

    我正在使用 Magento 1 5 1 0 我想在单页结账表单中自定义地址块 我想删除 传真 输入字段并将 区域 下拉列表放在国家 地区 下拉列表 下方 这个形式是在哪里定义的 亲切的问候 伯蒂 导航到您的主题文件夹 默认文件位于以下位置
  • 大师系统要求

    我们将使用 Virtuoso 来存储 RDF 三重计数一开始将为 1 亿 我需要知道典型的 RAM CPU 磁盘等应该是什么 查询将使用 SPARQL 并且查询会有点复杂 请提供您的意见 Virtuoso 版本 6 x 三元组 四元组 的平
  • JAVA - 路径问题(在 Eclipse 中有效,在 cmd 中无效)

    为什么下面的启动在 Eclipse 中有效 private static MaxentTagger maxentTagger new MaxentTagger c DP lemma models english left3words dis