質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

3回答

5439閲覧

(No such file or directory)

RYOHEI1009

総合スコア45

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/01/20 08:39

編集2018/01/23 08:45

現在、FileinputstreamのところでNO such file or directoryというエラーがでます。
やりたいこととしては、SSL通信で、LDAPサーバーに接続することです。

参照サイト
http://tt4cs.blogspot.jp/2014/01/how-to-connect-to-ldap-via-ssl-tls.html

crtファイルを読み込もうとしていますが、ファイルが存在しないといわれます。
ファイルの置き方がいけないんでしょうか??
相対パスの書き方教えてください

java

1 private void testConnection(SocketFactory socketFactory) { 2 LDAPConnection conn = null; 3 try { 4 conn = new LDAPConnection(socketFactory, "IPアドレス", 636); 5 conn.bind("cn=Manager,dc=maxcrc,dc=com", "secret"); 6 7 String base ="dc=maxcrc,dc=com"; 8 SearchScope scope = SearchScope.SUB; 9 Filter filter 10 = Filter.createANDFilter(Filter.createEqualityFilter("uid", "14F2009"),Filter.createEqualityFilter("userPassword", "5963")); 11 SearchResult result = conn.search(base, scope, filter); 12 13 List entries=result.getSearchEntries(); 14 System.out.println(entries); 15 if(entries.isEmpty()){ 16 System.out.println("空っぽです。"); 17 } 18 System.out.println("Connection successful."); 19 } catch (LDAPException e) { 20 System.out.println("ERROR MESSAGE : " + e.getMessage()); 21 e.printStackTrace(); 22 } 23 if (conn != null) 24 conn.close(); 25 } 26 private void useInMemoryTrustStore() { 27 SocketFactory socketFactory = null; 28 try(InputStream in = new FileInputStream("C:\Users\ryo\Desktop\ldap_1\app\server.crt")) { 29 CertificateFactory certificateFactory 30 = CertificateFactory.getInstance("X.509"); 31 Certificate certificate 32 = certificateFactory.generateCertificate(in); 33 KeyStore trustStore 34 = KeyStore.getInstance(KeyStore.getDefaultType()); 35 trustStore.load(null); 36 trustStore.setCertificateEntry("openldap", certificate); 37 TrustManagerFactory trustManagerFactory 38 = TrustManagerFactory.getInstance("PKIX"); 39 trustManagerFactory.init(trustStore); 40 TrustManager[] trustManagers 41 = trustManagerFactory.getTrustManagers(); 42 SSLUtil sslUtil = new SSLUtil(trustManagers); 43 socketFactory = sslUtil.createSSLSocketFactory(); 44 } catch (GeneralSecurityException | IOException e) { 45 System.out.println("ERROR MESSAGE : " + e.getMessage()); 46 e.printStackTrace(); 47 } 48 if (socketFactory != null) 49 testConnection(socketFactory); 50 }

assetsファイルにserver.crtを置きました
イメージ説明説明](c7285d4749fda80a22b565ddfec7b840.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

参考URL
私はAndroidStudio等使って開発したことはないのですが、ファイルの配置については参考URLのページを参照すればわかるのではと思います。

投稿2018/01/23 09:27

unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

絶対パスですが、"C:/Users/ryo/Desktop/ldap_1/app/server.crt"で取得できるはずですが...。エクスプローラーで、"C:/Users/ryo/Desktop/ldap_1/app"にアクセスしてserver.crtファイルが存在するかを確認してください。ファイルが無いと言われた時のStackトレースを一緒に記載してください。

投稿2018/01/23 07:17

unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RYOHEI1009

2018/01/23 08:41

java.io.FileNotFoundException: ../../../../../../assets/server.crt (No such file or directory) W/System.err: at java.io.FileInputStream.open(Native Method) W/System.err: at java.io.FileInputStream.<init>(FileInputStream.java:146) W/System.err: at java.io.FileInputStream.<init>(FileInputStream.java:99) W/System.err: at com.example.ryo.ldap_1.MainActivity$Ldap.useInMemoryTrustStore(MainActivity.java:134) W/System.err: at com.example.ryo.ldap_1.MainActivity$Ldap.doInBackground(MainActivity.java:87) W/System.err: at com.example.ryo.ldap_1.MainActivity$Ldap.doInBackground(MainActivity.java:53) W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:304) W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) W/System.err: at java.lang.Thread.run(Thread.java:762) というエラーです。 androidは絶対パスで取得可能ですか?? MainActivityで実行を行っているので相対パスで、今回は行いました!!
unz.hori

2018/01/23 09:08

どういった状況で実行しているのでしょうか?AndroidStudio等を使用しているのでしょうか? その辺りが記述されていなかったのでWindows上でのJava開発かと思っていました。 基本的にはclassファイルがある場所がカレントディレクトリになりますので、相対パスはclassファイルがある場所を基準として考えればいいと思います。classファイルと同じディレクトリにcrtファイルがあるのであれば、"./server.crt"。1つ上のディレクトリ階層であれば"../server.crt"などのように
RYOHEI1009

2018/01/23 09:40

すみません。。 タグでしか詳細を露にしておりませんでした! 読み込むことができました
guest

0

つ"C:/Users/ryo/Desktop/ldap_1/app/server.crt"

投稿2018/01/20 10:45

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RYOHEI1009

2018/01/20 15:11 編集

ご回答ありがとうございます。 しかし、取得することが出来ません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問