44

URLサンプルプロジェクトがそう言ったので、ファイルをオブジェクトにロードしようとしている関数があります。

public class SecureFTP {

    public static void main(String[] args) throws IOException , ClassNotFoundException, SQLException , JSchException, SftpException{
        File file = new File("/home/xxxxx/.ssh/authorized_keys");
        URL keyFileURL = this.getClass().getClassLoader().getResource(file);

を使用してみSecureFTP.class.getResourceましたが、それでもコンパイルできませんでした。

私はJavaにかなり慣れていないので、何か間違っていることを知っています。

4

5 に答える 5

71

main メソッドは static メソッドであるため、this(現在のオブジェクトに) アクセスしようとしても機能しません。その行を次のように置き換えることができます

URL keyFileURL = SecureFTP.class.getClassLoader().getResource("/home/xxxxx/.ssh/authorized_keys");
于 2011-12-02T20:05:52.577 に答える
27

From: Java の静的メソッドから getClass() を呼び出す方法は?

getClass() の代わりに TheClassName.class を使用してください。

于 2015-04-30T13:26:03.137 に答える
10

クラスローディングメカニズムを使用して(クラスパスから)リソースをロードするために、パラメータとしてリソース名(ではなく)をgetResource取るため、コンパイルできません。で使用しても意味がありません。ファイルを開きたい場合は、または.StringFileFileFileInputStreamFileReader

http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29を参照してください。次にそのような質問がある場合は、コンパイラ エラー メッセージを含めてください。 .

于 2011-12-02T20:09:44.420 に答える
4
SecureFTP.class.getClassLoader().getResource(<<your resource name>>); 

トリックを行う必要があります!

于 2014-05-28T14:11:35.973 に答える