我使用eclipse luna作爲IDE。我正在從事Web應用程序。 當我在JavaScript中編碼時,有時我忘記放分號,但如果我的JavaScript在瀏覽器中運行,所有東西仍然正常工作。Nashorn - 調試JavaScript運行在Nashorn
但是當我在犀牛運行我的JavaScript,它會拋出一個錯誤,因爲我並沒有把分號
錯誤們的說法
nashorn Error: :1:68 Expected ; but found var ..... ... ... in at line number 1 at column number 68
的問題是,控制檯總是顯示我第1行的錯誤,我認爲是因爲nashorn讀取我的JavaScript文件爲單行,但如實地說,我的JavaScript文件包含很多行。
這是很難找到的錯誤,因爲控制檯總是說錯誤是行號1
我知道什麼是錯我的代碼,但我不知道如何解決它。
Nashorn.java
public class Nashorn {
public Nashorn() {
}
public static String readFileAsText(String theUrl){
String allLine = "";
try {
URL url = new URL(theUrl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine = "";
while ((inputLine = in.readLine()) != null){
allLine += inputLine;
//System.out.println("read : "+inputLine);
}
in.close();
} catch (MalformedURLException e) {
System.out.println("url Error: ");
} catch (IOException e) {
System.out.println("I/O Error: ");
}
return allLine;
}
public static void main(String[] args) {
ScriptEngineManager scriptEngineManager = new ScriptEngineManager(null);
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");
try {
//readFileAsText
String room = Nashorn.readFileAsText("http://localhost:8080/monsterpuzzle/data/Room.js");
scriptEngine.eval(room);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("nashorn Error: "+e.getMessage());
e.printStackTrace();
}
}
}
Room.js
var Room = function(){
this.test = function(){
print("lalala");
};
}
var room = new Room();
room.test();
我的問題:
犀牛總是顯示在我行號1,錯誤但是,該錯誤不在行號1中,而是在另一行中。我認爲這是因爲nashorn將我的整行代碼讀爲單行。
我的問題:
如何解決這一問題?
(所以如果在第6行錯誤,控制檯會說,在第6行誤差不1號線),因爲你正在上一行
對不起,我從來沒有用過犀牛,所以我只能儘量給你提示...通常,當我們看到在1號線這是因爲JavaScript是精縮錯誤。也許在nashorn/eclipse中有一些選項可以啓用自動縮小功能,並且此選項已打開? – Joel 2014-11-05 10:52:32