簡體   English   中英

編譯運行別人的java代碼

[英]Compiling and running somebody elses java code

我有興趣編譯和運行一些與我正在考慮訂閱的 api 服務一起使用的 java 代碼。 我是 java 的新手,從今天早上開始我一直在努力讓它工作。 現在我想知道這里是否有人願意幫助我指出正確的方向。

在所有代碼附帶的示例文件夾中,是文件,

RateService.jar
RateServiceExample.bat 
RateServiceExample.class
RateServiceExample.java

(我在 Mac 上,但 bat 腳本沒有我以前從未使用過的任何東西)

我想先編譯代碼。 java 文件里面有一行,

import com.gain.rateservice.*;

我打開 jar 文件,果然是目錄,

/com/gain/rateservice/

帶文件

Bup.class
Msg.class
Rate.class
RateService.class
RateServiceListener.class
Sys.class

我試試

javac RateSerivceExample.java

我得到,

RateServiceExample is not abstract and does not override abstract method
OnRateServiceMSGMessage(com.gain.rateservice.Msg) in
com.gain.rateservice.RateServiceListener
public class RateServiceExample implements RateServiceListener {

我猜我沒有得到它的原因是我的新手。 任何幫助將不勝感激。

在 Java 中,如果你實現了一個接口,那么你必須實現該接口的所有方法。 在您的情況下,此錯誤意味着 RateServiceExample class 聲稱實現了 RateServiceListener 接口,但實際上並未實現 RateServiceListener class 的所有方法。

一個能讓你的代碼編譯的短期解決方案是從 class 聲明中刪除implements RateServiceListener 因此,您的 class 聲明將如下所示:

public class RateServiceExample

但是,如果您真的希望實現該接口,則必須使用所有這些方法填寫您的 RateServiceExample class。 說得通?

要了解有關 Java 接口和 inheritance 的更多信息,您可以在此處了解 go。

發布為答案,以便我可以收集我的聲譽積分:

javac -cp .\RateService.jar RateServiceExample.java

並且 .class 文件已經存在,因此您可以直接運行它:

java -cp .\RateService.jar RateServiceExample

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM