Javaにトライしているのですが、jarファイルや別のclassファイルにアクセスしてクラスメソッドを使いますよね?
そのアクセス方法について質問があります。
Java
1// Console.java 2import java.io.*; 3 4public class Console{ 5 public static void Write( String data ){ 6 System.out.println( data ); 7 } 8 9 public static String Read(){ 10 String temp; 11 12 BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) ); 13 14 try{ 15 temp = reader.readLine(); 16 return temp; 17 }catch( IOException e ){ 18 return null; 19 } 20 } 21 22 public static void Wait(){ 23 String temp; 24 25 temp = Console.Read(); 26 } 27}
Java
1// MainProg.java 2class MainProg{ 3 public static void main(String args[]){ 4 Console.Write( "Hello" ); 5 } 6}
と記述し、それぞれjavac でコンパイル。
その後、Console.class を (他のクラスも追加する予定で。) default.jar というjarファイルに固めます。
で、
コマンドプロンプトから
$java MainProg -classpath default.jar
と打って起動しようとすると
Exception in thread "main" java.lang.NoClassDefFoundError: Console
at MainProg.main(MainProg.java:6)
Caused by: java.lang.ClassNotFoundException: Console
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
とエラーメッセージが出て起動しません。
メッセージから推測して、Consoleというクラスにアクセス出来ていないことが原因なようなのですが、
どうすればいいのでしょうか。
コンパイル&jarファイルに固めるときに打ったコマンド: $javac Console.java $jar -cf default.jar Console.class $javac MainProg.java
起動時:
$java MainProg -classpath default.jar
私がやりたいこと&知りたいことは、 1. 必要最低限のクラス を 一つのjarファイルに固めたり、外部ライブラリ ( POI 等 ) を使用する方法 2. mainメソッドのあるクラスファイルを jarファイルにして、必要最低限のクラスも別のjarファイルとして固め、ダブルクリックで起動できるようにする方法 です。 自分でも検索かけてみたのですが、調べ方が悪いのか、 eclipse で作る方法等のように、私が知りたいことからは外れているのが多かったので、 質問しました。 [環境等] 言語 : Java コンパイラ: javac 宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/07 04:04