50051


javaでtensorflowを使用しようとしているのですが，  
チュートリアル：<https://www.tensorflow.org/install/lang_java>中のTensorFlow with the
JDKの通りに必要なものをダウンロードし，コンパイルまではできたのですが，

[code]

    java -cp libtensorflow-1.11.0.jar;. -Djava.library.path=.\jni HelloTensorFlow
    
[/code]

とターミナルに入力して動かそうとすると

> エラー: メイン・クラス.library.path=.\jniが見つからなかったかロードできませんでした

とエラーを返されます．  
パスの設定方法やファイル構成等，チュートリアルより詳細に教えていただけると幸いです．

現在の私の環境は，

  * OS: windows10(64bit)
  * java version: 1.8.0_191
  * Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
  * Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

各ファイルの構成は

[code]

    ├ jni/
    │ ├ LICENSE
    │ └ tensorflow_jni.dll
    ├ HelloTF.java
    ├ HelloTF.class
    └ libtensorflow-1.11.0.jar
    
[/code]

という具合です．  
よろしくお願いします．


CC BY-SA 4.0
2018-11-07T04:44:36.623
50045
2018-11-08T08:56:08.453
2018-11-07T10:23:01.650
13022
30880
question
java tensorflow
tensorflowをJDKで動かしたいが，エラーが出る

[code]

    java -cp libtensorflow-1.11.0.jar;. -Djava. library.path=.\jni HelloTensorFlow
    
[/code]

実際に試してみたところ、上記のコマンド実行で再現しました。  
**「-Djava.」の後にスペースが入っていないでしょうか？**

[code]

    C:\work\20181107\>java -cp libtensorflow-1.11.0.jar;. -Djava. library.path=.\jni HelloTensorFlow
    エラー: メイン・クラスlibrary.path=.\jniを検出およびロードできませんでした
    原因: java.lang.ClassNotFoundException: library.path=.\jni
    
[/code]

* * *

また、JavaはClass名とファイル名は一致している必要があるため、「HelloTF.class」である場合は、実際のファイルの中身も「HelloTF」となっているかと思われます。  
っとなるとコマンド自体も↓でなければ正しく実行できないかと思われます。

[code]

    java -cp libtensorflow-1.11.0.jar;. -Djava.library.path=.\jni HelloTF
    
[/code]

* * *

コメントの内容で解決したようなのでコメント欄から転記します。  
PowerShellで実行する場合には、下記のようにクラスパスの値とシステムプロパティの設定をダブルクォーテーションで囲う必要があるようです。

[code]

    java -cp "libtensorflow-1.11.0.jar;." "-Djava.library.path=.\jni" HelloTensorFlow
    
[/code]

何故、PowerShellの場合にダブルクォーテーションで囲う必要があるかについては、PowerShellの仕様については詳しくないため、参考のURLを記載するだけに致します。（公式ドキュメントはみつかりませんでした。）

  * [Why does PowerShell split arguments containing hyphens and periods?](https://stackoverflow.com/questions/28704867)
    * 本家Stack Overflow
  * [period in arguments](https://social.technet.microsoft.com/Forums/en-US/62d48584-fe25-43d5-8693-4c9b946cc1d4)
    * MicrosoftのQAサイト？
  * [PowerShellコマンド環境で引っかかったこと](http://d.hatena.ne.jp/torutk/20160517/p1)
    * 日本語情報（↑↑のStack Overflowにたどり着いています）


CC BY-SA 4.0
2018-11-07T08:47:55.210
50051
2018-11-08T08:56:08.453
2018-11-08T08:56:08.453
13022
13022
50045
answer