[英]How do I correctly import classes in Java?
我試圖在ubbuntu 12.04上編譯java程序時遇到以下錯誤。 。 為了便於使用,我將所有類放在與java程序相同的目錄中。 我將提供錯誤消息,主要java程序以及類列表。 我刪除了前幾條注釋行,因此錯誤消息的行號不匹配。 我對導入語句“評分請求”和“ScoringResponse”有問題
這里還有env輸出
JAVA_HOME =在/ usr /本地/ JAVA / jdk1.7.0_10
CLASSPATH =:/家庭/ syedk / WEKA / WEKA-3-7-9 / MySQL的連接器的Java-3.1.17-bin.jar
Error message
=============
javac Scoring.java
Scoring.java:37: error: '.' expected
import ScoringRequest;
^
Scoring.java:37: error: ';' expected
import ScoringRequest;
^
Scoring.java:38: error: class, interface, or enum expected
import ScoringResponse;
^
3個錯誤
package Scoring;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ScoringRequest;
import ScoringResponse;
@WebServlet( name="Scoring", displayName="Scoring Servlet", urlPatterns = {"/Scoring"}, loadOnStartup=1)
public class Scoring extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
BufferedReader reader = null;
BufferedWriter writer = null;
ScoringRequest req = null;
try {
reader = new BufferedReader(new InputStreamReader(
request.getInputStream()));
StringBuffer xml = new StringBuffer();
String line = reader.readLine();
while (line != null) {
xml.append(line);
line = reader.readLine();
}
req = new ScoringRequest(xml.toString(), null, null,
null);
ScoringResponse res = (new ScoringEngine()).score(req);
writer = new BufferedWriter(new OutputStreamWriter(
response.getOutputStream()));
writer.write(res.toXML());
writer.flush();
} catch (Exception ex) {
System.err.println(ex);
ScoringResponse res = new ScoringResponse(req.getModelName(), req.getPmmlURL(), req.getCsvInputRows(), null);
StringWriter errWriter = new StringWriter();
ex.printStackTrace(new PrintWriter(errWriter));
res.setErrorMessage(errWriter.toString());
// res.setErrorMessage(ex.getMessage());
writer = new BufferedWriter(new OutputStreamWriter(
response.getOutputStream()));
writer.write(res.toXML());
writer.flush();
} finally {
try {
if (reader != null)
reader.close();
} catch (Exception ex) {
}
try {
if (writer != null)
writer.close();
} catch (Exception ex) {
}
}
}
}
這些是問題:
import ScoringRequest;
import ScoringResponse;
您不從默認包中導入類 - 它們只是已經可訪問。 只需刪除這兩行,它應該沒問題 - 或者更好,將它們移動到命名包中並從那里導入它們。 當然,如果它們與您導入的代碼位於同一個包中,則根本不需要導入它們。
作為旁注,我強烈建議不要像在課程中那樣命名一個與類相同的包:
package Scoring;
...
public class Scoring extends HttpServlet {
...
}
除了其他任何內容, Scoring
違反了包名稱的Java約定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.