【问题标题】:Error 206 occures on JUnit test in EclipseEclipse 中的 JUnit 测试出现错误 206
【发布时间】:2013-02-06 09:14:36
【问题描述】:

当我尝试在 Eclipse 中运行 JUnit 测试类时遇到问题。

执行命令行时发生异常。 无法运行程序“C:\Program Files\Java\jre7\bin\javaw.exe”(在目录“C:\Users\User\Documents\Projects\MyProject”中):CreateProcess 错误=206,文件名或扩展名太长

收到此错误后,我开始搜索如何解决问题...但是现在我生成了包含我需要的所有 jar 的 MANIFEST 文件,但我不知道如何将新的清单文件传递给该项目以及如何处理我的 lib 目录中的 jar?

提前致谢!

编辑:

我有 SimpleTest 类和 TestRunner 类

public class SimpleTest {

     @Test
       public void testAssertions() {

          String str1 = new String ("abc");
          String str2 = new String ("abc");

          assertEquals(str1, str2);       
     }
    }

package com.epb.junit;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(SimpleTest.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println(result.wasSuccessful());
   }
} 

这里没什么有趣的,我只需要知道如何打包我正在使用的所有 JAR 文件,因为它们太多了......我用它们制作了一个清单文件,但我不知道如何传递它而不是 JAR 文件。

P.S 我正在使用 Eclipse -> Run As -> JUnit Test 选项运行测试类。发生错误后,我创建了这个 TestRunner 类,并将它作为 Java 应用程序运行,但仍然出现错误 206。 从我读到的东西中,我意识到我的构建路径太长了,因为有很多 JARS,所以现在我正在寻找一种方法来缩短这个路径并将 jar 打包成一个。我尝试将 lib 文件夹导出到 Jar 文件中,但没有成功。

编辑 2

我刚才尝试的最后一件事是创建一个“路径 jar”,其中仅包含 Manifest.mf 文件。我把这个 jar 放在我的项目 Build Path 中,而不是所有其他 Jars 但仍然没有结果......现在项目的 Built Path 有错误......

【问题讨论】:

  • 您的问题中没有足够的信息来回答。请分享更多关于你的测试类的细节,你是如何运行它的,为什么你的 JAR 是相关的,......
  • 这是个好消息。请发布您自己问题的答案。然后您可以在 48 小时后接受它。

标签: jakarta-ee junit


【解决方案1】:

我已经通过执行以下操作解决了这个问题:

选择项目 ⟶ 属性 ⟶ Google App Engine ⟶ ORM 并仅包括包含您要增强的类的目录。

【讨论】:

    【解决方案2】:

    您只需按照以下步骤操作:

    1. 将 eclipse/plugins/org.eclipse.jdt.launching_3.4.*.jar 复制到保险箱 放置在插件文件夹之外,以便您随时可以恢复。
    2. 关闭 Eclipse。
    3. 将 *.jar 重命名为 *.zip
    4. 打开压缩包,将附件中的4个类文件复制到 org\eclipse\jdt\internal\launching(替换现有文件)
    5. 在 zip 文件中进入 META-INF 并删除除 MANIFEST.MF 之外的所有文件
    6. 将 MANIFEST.MF 解压到您的磁盘并使用文本编辑器对其进行编辑。
    7. 删除从第一个“NAME:”条目开始的所有内容。
    8. 确保在文件末尾留下 两个 (2) 个换行符!
    9. 保存 MANIFEST.MF 并将其复制回 zip 文件中。
    10. 将 *.zip 重命名为 *.jar
    11. 将修改后的jar替换为你Eclipse/plugin目录下的jar!
    12. 享受吧!

    PS。步骤 4 中的附件可从此处下载:

    https://bugs.eclipse.org/bugs/attachment.cgi?id=216637

    感谢创建这些步骤的 Markus Keller 先生!

    【讨论】:

    • 哪 4 个类需要复制,因为我看到很多类但无法弄清楚这四个类?
    • 我有 Eclipse JEE Indigo SR2 (x64),我打开了一些 GWT 项目,并且在启动 Eclipse 时,我从 DataNucleus Enhancer 收到了相同的错误消息。我很高兴知道这个答案中描述的步骤也适用于这个版本的 Eclipse,唯一的区别是要备份的 jar 的版本号(3.6 而不是 3.4)。用于替换的类(即 LongCommandLineLauncher.class、StandardVMDebugger$ConnectRunnable.class、StandardVMDebugger.class 和 StandardVMRunner.class)确实比原始类更新,尽管附件来自 Eclipse 3.5 版。
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多