【问题标题】:Error: Could not find or load main class错误:无法找到或加载主类
【发布时间】:2016-06-12 21:21:42
【问题描述】:

首先感谢您的帮助。我查看并尝试了所有像我一样的标题,但没有一个能帮助我解决我的问题。我尝试了这个命令,以便在包含 ExampleProgram.java 的当前文件夹中编译:

java -Xms16m -Xmx64m -cp ".:boilerpipe-1.2.0.jar:lib/nekohtml-1.9.13.jar:lib/xerces-2.9.1.jar:lib/langdetect.jar:lib/jsonic-1.2.8.jar" ExampleProgram.java

然后它给出了这个错误:

错误:无法找到或加载主类 ExampleProgram.java

这是 ExampleProgram.java:

import java.io.InputStream;
import java.io.FileReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;

import org.xml.sax.InputSource;

import de.l3s.boilerpipe.document.TextDocument;
import de.l3s.boilerpipe.extractors.ArticleExtractor;
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput;


// Language detect librarys
import com.cybozu.labs.langdetect.*;

import net.arnx.jsonic.JSON;
import net.arnx.jsonic.JSONException;


import java.io.*;
import java.net.*;


import java.util.concurrent.Executors;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

class ExampleProgram {

  public static void main(String[] args) throws Exception {

EveryDetector evr = new EveryDetector();
InetSocketAddress addr = new InetSocketAddress("127.0.0.1",8080);
HttpServer server = HttpServer.create(addr, 0);

MyHandler hndl = new MyHandler();
hndl.setDetector(evr);

MyHandlerExtractContent hnd2 = new MyHandlerExtractContent();
hnd2.setDetector(evr);

MyHandlerDetectLanguage hnd3 = new MyHandlerDetectLanguage();
hnd3.setDetector(evr);

server.createContext("/",hndl);
server.createContext("/extractcontent",hnd2);
server.createContext("/detectlanguage",hnd3);
server.setExecutor(Executors.newCachedThreadPool());
server.start();
System.out.println("Server is listening on port 8080" );


 }
}

来源:https://github.com/remdex/boilerpipe-and-language-detect-api-server

我该如何解决我的问题?

【问题讨论】:

  • 制作ExampleProgrampublic
  • 谢谢。我试过你说,但我仍然面临同样的问题。 @Ramanlfc

标签: java linux class command-line command


【解决方案1】:

class ExampleProgram 之前添加public 字样,如下所示:

public class ExampleProgram {
   public static void main(String[] args) throws Exception {

请记住,主类必须始终为public

【讨论】:

  • 谢谢。我试过你说的,但我仍然面临同样的问题。
【解决方案2】:

class ExampleProgram更改为public class ExampleProgram,因为编译器无法使用main方法定位类。

请注意,您只能拥有一个“公共”类,否则会混淆编译器。

【讨论】:

  • 谢谢。我试过你说的,但我仍然面临同样的问题。
  • @arkanas 你能发布你试过的东西吗?它绝对应该有效。
  • 我将其更改为 ExampleProgram 的公共类并输入了以下命令:java -Xms16m -Xmx64m -cp ".:boilerpipe-1.2.0.jar:lib/nekohtml-1.9.13.jar: lib/xerces-2.9.1.jar:lib/langdetect.jar:lib/jsonic-1.2.8.jar" ExampleProgram.java
  • @arkanas 你是从命令提示符运行这个吗?如果是这样,请确保您的目录(您键入区域之前的路径)包含您尝试运行的文件。
  • 对不起,我不擅长java。是的,我从命令提示符运行它。如何创建一个目录来运行这个应用程序?
猜你喜欢
  • 2016-03-16
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多