13

Question(s):

How am I supposed to compile just one class? How do I put it INTO the class file (which I've created)? Doesn't Eclipse just automatically compile all the classes at runtime?

The back story:

I'm following a tutorial and it tells me to:

Put the compiled class into WEB-INF/classes.

Where the class is:

package org.odata4j.tomcat;
import java.util.Properties;
import org.core4j.Enumerable;
import org.core4j.Func;
import org.core4j.Funcs;
import org.odata4j.producer.ODataProducer;
import org.odata4j.producer.ODataProducerFactory;
import org.odata4j.producer.inmemory.InMemoryProducer;

public class ExampleProducerFactory implements ODataProducerFactory {

  @Override
  public ODataProducer create(Properties properties) {
    InMemoryProducer producer = new InMemoryProducer("example");

    // expose this jvm's thread information (Thread instances) as an entity-set called "Threads"
producer.register(Thread.class, Long.class, "Threads", new Func<Iterable<Thread>>() {
  public Iterable<Thread> apply() {
    ThreadGroup tg = Thread.currentThread().getThreadGroup();
    while (tg.getParent() != null)
      tg = tg.getParent();
    Thread[] threads = new Thread[1000];
    int count = tg.enumerate(threads, true);
    return Enumerable.create(threads).take(count);
  }
}, Funcs.method(Thread.class, Long.class, "getId"));

return producer;
  }
 }
4

7 回答 7

14

保存文件时,如果没有编译器错误.java,Eclipse 会将其编译为文件。.class您通常可以在bin项目的子目录中找到此文件。特别是,它会在bin/org/odata4j/tomcat因为你已经声明你的类属于org.odata4j.tomcat包。随意将此文件复制到您希望的任何位置。

注意:如果您拥有该域,则只能org.odata4j在您的包名称中使用。odata4j.org否则,您应该选择自己的包名称。

于 2013-06-21T20:42:13.173 回答
7

我在Project -> Properties -> Java Build Path at field Default output folder找到我的类文件。对我来说,默认值是“项目名称/目标/类”。

于 2015-11-18T16:28:12.673 回答
2

你的java文件位置应该是:org/odata4j/tomcat/ExampleProducerFactory.java 然后你可以在命令行上做:javac org/odata4j/tomcat/ExampleProducerFactory.java 这将创建编译的类文件:org/odata4j/tomcat/ExampleProducerFactory.class 把它放在一个文件夹中WEB-INF/classes/org/odata4j/tomcat/ExampleProducerFactory.class

但更好的是,在 Eclipse 中创建“动态 Web 项目”,它将为您处理所有事情(只需使用默认值)。最终结果将是.war您可以通过菜单选项创建的文件:file->export

这样的.war文件可以部署在任何 web 容器中,例如 tomcat。在您的 tomcat 中查找 autodeploy 目录或使用 tomcat 管理控制台来部署它。

于 2013-06-21T20:32:46.350 回答
1

.java 编译成功后,.class 将在项目工作空间下的 bin 文件夹中。

于 2013-10-29T18:51:43.717 回答
0

假设这个类在一个名为 的文件中ExampleProducerFactory.java,您可以在命令行中通过导航到包含该文件的目录并键入

javac ExampleProducerFactory.java

这将创建一个名为的文件ExampleProducerFactory.class,您可以将其移动到所需的目录。

于 2013-06-21T20:32:48.167 回答
0

为了在 Eclipse 中正常工作,您需要在“动态 Web 项目”中工作,而不是在普通的“Java 项目”中工作,这在 Eclipse 的标准纯 Java 下载中不可用。

您要么需要下载并使用 Eclipse 的 Java EE 风格,要么将 WTP 添加到您当前的安装中以获取它。

请注意,启动和运行一个简单的 Web 应用程序的最简单的方法是使用 Netbeans,它在 Java EE 风格中默认正确连接(包括 Tomcat)。

于 2013-06-21T20:54:19.460 回答
0

我只需打开java文件位置(在包资源管理器中右键单击-->显示在-->系统资源管理器中)转到工作区顶部并搜索不带扩展名的文件名。它也给了我 .class 文件。我只是删除它。

于 2017-02-10T15:14:29.123 回答