~/thrift
誰かがそれをコンパイルする方法を手伝ってくれるならant
、私は自分のシステムにthriftをインストールしました。
コマンドラインで次のことを行いました。
私は apache thrift プログラムを作成し、Eclipse で実行できます。コマンドラインからやりたい。
私のベースディレクトリのツリー構造は次のとおりです。
.
├── bin
├── lib
│ ├── commons-codec-1.6.jar
│ ├── commons-lang3-3.1.jar
│ ├── commons-logging-1.1.1.jar
│ ├── httpclient-4.2.5.jar
│ ├── httpcore-4.2.4.jar
│ ├── junit-4.4.jar
│ ├── libthrift-0.9.1.jar
│ ├── log4j-1.2.14.jar
│ ├── servlet-api-2.5.jar
│ ├── slf4j-api-1.5.8.jar
│ └── slf4j-log4j12-1.5.8.jar
└── src
├── FileMetaData.java
├── files
├── FileStoreImpl.java
├── FileStore.java
├── RFile.java
├── RFileMetadata.java
├── Server.java
├── Status.java
├── StatusReport.java
└── SystemException.java
4 directories, 20 files
src/Server.java
main
実行する機能があります。
次のコマンドを使用してコンパイルします。
javac -classpath "lib/libthrift-0.9.1.jar:lib/slf4j-log4j12-1.5.8.jar:lib/slf4j-api-1.5.8.jar:lib/log4j-1.2.14.jar:lib/commons-logging-1.1.1.jar" -d bin src/*.java -Xlint:none
次の警告が生成されます。
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
しかし、私はそれをローカルで実行したいだけで、すでにEclipseで実行しており、それが機能することを知っているので、それで問題ありません。
コマンドラインから実行するには、次のコマンドを試しました:
cd bin
java Server
またはこれ
java -classpath "lib/libthrift-0.9.1.jar:lib/slf4j-log4j12-1.5.8.jar:lib/slf4j-api-1.5.8.jar:lib/log4j-1.2.14.jar:lib/commons-logging-1.1.1.jar:bin" Server
次のエラーが表示されます。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift/transport/TTransportException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
at java.lang.Class.getMethod0(Class.java:2764)
at java.lang.Class.getMethod(Class.java:1653)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransportException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more