【问题标题】:how to use a .class file with .java files如何将 .class 文件与 .java 文件一起使用
【发布时间】:2011-09-24 12:44:44
【问题描述】:

我对 java 很陌生(我用 C/C++ 编程),但我仍然没有弄清楚这一切是如何协同工作的。

我并不是要让任何人做我的功课,我只是对一些基本的 Java 东西感到困惑。我有一个任务要我创建一个迷宫。该作业附带一些文件,这些文件已预先实施并在理论上可行。该文件夹给了我一些 .java 文件和一些 .class 文件。我打开了 .java 文件,其中大多数是没有实际代码的接口,所以我假设它的核心在这些 .class 文件中。我的问题是,我如何与这些 .class 文件交互?我需要做类似 import myClass 的事情吗?如果我有一个名为 myClass.class 的文件?

我尝试导入包含这些文件的文件目录(通过 Eclipse),但似乎 .class 文件没有显示。我猜它正在后台处理?

这是作业的链接 http://www.ics.uci.edu/~goodrich/teach/ics23/LabManual/Dark/

这是包含所有 .java 和 .class 文件的 zip 文件 http://www.ics.uci.edu/~goodrich/teach/ics23/LabManual/Dark/Dark.zip

提前致谢!

【问题讨论】:

    标签: java class import


    【解决方案1】:

    要在 Eclipse 中将 .class 文件添加到您的项目中:右键单击您的项目,选择属性 --> Java 构建路径 --> 库,然后单击添加类文件夹按钮。选择包含类的文件夹。

    【讨论】:

    • 教别人使用 IDE 的特定界面并不是解释实际发生的事情的有用方法。
    • 我同意,但我在这里看到了很多解释到底发生了什么的答案,没有一个解释实际要做什么。
    • 完全同意 tobyodavies 的看法。他是从学术的角度而不是生产的角度提出问题。应避免提供特定于 IDE 的建议。 :)
    • @tobyodavies 有趣,我已经同意你的观点,但你还在争论。想想吧。
    • 相反,在 IDE 中实现外部 .class 使用的快速知识帮助我了解 .class 文件与 C/C++ 静态/动态库有何不同。
    【解决方案2】:

    不,您不需要导入。将类文件放在同一个文件夹中,以便包含它们的路径,并像普通数据类型一样简单地调用它们。

    例如:

    myClass mc = new myClass();
    

    (new myClass()).myRoutine();
    

    如果某些方法是静态的

    myClass.staticalicious();
    

    导入一般在需要指定类文件路径时使用。

    另外,.class 文件只是简单地编译 .java 文件。

    哦,最后,请遵循 Java 命名法 :) 应该是 MyClass,而不是 myClass。

    【讨论】:

      【解决方案3】:

      .class 文件是.java 文件的编译版本。假设 .class 文件已正确命名和打包,您应该能够像这样引用它们:

      文件名:some.package.class

      代码:import some.package;

      导入包后,您可以调用其中包含的类的方法。

      【讨论】:

        【解决方案4】:

        正如其他人所提到的,类文件是编译后的 Java 文件,因此它们中没有比您在源文件中看到的“更多肉”。接口有类文件,实现有类文件。

        我假设你只使用默认包。

        所以只需将类路径设置为保存这些预编译类的目录:

        例如在 Linux/Unix 系统上编译你的类:

        javac -classpath <dirWithClassFiles>:. .....
        

        并运行应用程序:

        java -classpath <dirWithClassFiles>:. .....
        

        然后你可以直接在你自己的类中使用那些预编译的类。

        【讨论】:

          【解决方案5】:

          类文件是java编译器的二进制输出。它们是 C 或 C++ 中 .o 文件的 java 等价物,这种情况下的“肉”可能是由您实现的。

          java 编译器处理查找和包含必要的文件,您可能需要import some.package.name.*; 以避免使用完整的类名(例如SomeClass 而不是some.package.name.SomeClass

          【讨论】:

            【解决方案6】:

            类文件是已编译的类,您无法在 IDE 中查看它们。您的 IDE 将允许您导入它们,但只需删除扩展...

            import example.some.Thing;
            

            .java 文件是最有可能用于编译 .class 文件的源文件。我敢肯定,它们只是供您参考。

            【讨论】:

              【解决方案7】:

              Eclipse IDE 不显示 .class 文件。您可以将 jar 或类文件添加到项目构建路径中。然后你可以将特定的类导入到你自己的类中来使用它。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-07-29
                • 1970-01-01
                • 1970-01-01
                • 2012-10-21
                • 1970-01-01
                • 2011-04-14
                • 2013-04-05
                • 2012-05-20
                相关资源
                最近更新 更多