在Eclipse项目中将.class或.java文件作为资源有任何限制吗?

在Eclipse项目中将.class或.java文件作为资源有任何限制吗?,java,eclipse,Java,Eclipse,当我试图将.class文件作为Eclipse下Java项目的资源时,我目前遇到了一些问题。我也确信在过去尝试将.java文件作为资源文件时会遇到问题。尽管Eclipse一点也不叫喊,但试图在运行时操纵资源给我带来了麻烦。我只能假设这与以一种特殊的方式对待它们有关,因为它们是特定于语言的扩展 除了使用不同的扩展或根本不使用扩展之外,还有什么办法可以避免这个问题吗 我当前正在尝试将.class文件作为资源,以便在运行时将其复制到用户指定的文件夹中。在将资源定义为MyResource.class时,打

当我试图将.class文件作为Eclipse下Java项目的资源时,我目前遇到了一些问题。我也确信在过去尝试将.java文件作为资源文件时会遇到问题。尽管Eclipse一点也不叫喊,但试图在运行时操纵资源给我带来了麻烦。我只能假设这与以一种特殊的方式对待它们有关,因为它们是特定于语言的扩展

除了使用不同的扩展或根本不使用扩展之外,还有什么办法可以避免这个问题吗

我当前正在尝试将.class文件作为资源,以便在运行时将其复制到用户指定的文件夹中。在将资源定义为MyResource.class时,打开时会遇到问题,但一旦将其更改为MyResource,一切都会正常工作


经过一番检查,我得出结论,Eclipse没有将.class文件放在输出目录的相应文件夹中,只是忽略了它。有没有关于如何克服这种行为的想法?

至少对我来说,这听起来真的和预期的一样。Java正在尝试加载或使用以已编译为结尾的类:

.类


你期待什么?在您尝试使用的类路径中有一个jar时,情况也一样,在jar中,您将有一堆要引用的.class文件。还是我什么都不懂

至少对我来说,这听起来真的和预期的一样。Java正在尝试加载或使用以已编译为结尾的类:

.类


你期待什么?在您尝试使用的类路径中有一个jar时,情况也一样,在jar中,您将有一堆要引用的.class文件。还是我什么都不懂

在eclipse中,右键单击项目并选择Properties>Java构建路径,然后选择Libraries选项卡。使用“添加类文件夹”创建与src文件夹处于同一级别的文件夹


然后,您可以将.class文件放在类文件夹下相应的包文件夹中,它们将作为构建过程的一部分复制到bin/中。

在eclipse中,右键单击您的项目并选择“属性”>“Java构建路径”,然后选择“库”选项卡。使用“添加类文件夹”创建与src文件夹处于同一级别的文件夹


然后,您可以将.class文件放在类文件夹下相应的包文件夹中,作为构建过程的一部分,它们将被复制到bin/中。

在最后一段中有说明ClassLoader.getSystemResourceAsStreamMyResource.class返回Null您是否尝试过getResourceAsStream而不是getSystemResource…?@DaveNewton:我也尝试过这个。getClass.getClassLoader.getResourceAsStreamMyResource.class,但似乎没有工作。水肿定义似乎不起作用。您使用的是完全限定的名称,还是真正的根名称?而且,如果它是在根类加载器级别,它看起来无论如何都只是遵从systemResource。您是否尝试了as/MyResource.class?您还可以从文件系统和/或jar文件中获取它,但我仍然不确定这是否有必要。这在最后一段中有说明。ClassLoader.getSystemResourceAsStreamMyResource.class返回null您是否尝试过getResourceAsStream而不是getSystemResource…?@DaveNewton:我也尝试过这个。getClass.getClassLoader.getResourceAsStreamMyResource.class,但似乎没有工作。水肿定义似乎不起作用。您使用的是完全限定的名称,还是真正的根名称?而且,如果它是在根类加载器级别,它看起来无论如何都只是遵从systemResource。您是否尝试了as/MyResource.class?您也可以从文件系统和/或jar文件中获取它,但我仍然不确定是否有必要这样做。至少对我来说,这听起来和预期的一样。Java正在尝试加载或使用以已编译结尾的类:这并不能解释为什么我不能访问MyResource.class。@吞食分析这是正常的。例如,如果您试图从命令行运行一个类,该怎么办?您可以这样做:JavaFoo,您不指定.class扩展名,这是java的工作方式-您根本不指定扩展名,它是自动假定的。一件事是当一个人尝试引用一个类时,另一件事是当一个人尝试引用一个文件时,就像在当前情况下一样。您是否建议调用GetResourceAsstreamyContract将起作用?因为我已经尝试过了,但没有。说得更直白一些:我不在乎当前的行为是否合理,我只是在寻找一种方法,将.class文件作为资源,并能够在运行时使用它。至少对我来说,这听起来真的和预期的一样。Java正在尝试加载或使用以已编译结尾的类:这并不能解释为什么我不能访问MyResource.class。@吞食分析这是正常的。W
例如,如果您试图从命令行运行一个类,该怎么办?您可以这样做:JavaFoo,您不指定.class扩展名,这是java的工作方式-您根本不指定扩展名,它是自动假定的。一件事是当一个人尝试引用一个类时,另一件事是当一个人尝试引用一个文件时,就像在当前情况下一样。您是否建议调用GetResourceAsstreamyContract将起作用?因为我已经尝试过了,但它没有。更直白地说:我不在乎当前的行为是否合理,我只是在寻找一种方法,将.class文件作为资源,并能够在运行时使用它。