Windowsバッチファイルを起動する際にNoClassDefFoundErrorが発生するエラーの対処法

このQ&Aのポイント
  • Windowsバッチファイルを起動すると、Exception in thread"main"java.lang.NoClassDefFoundErrorエラーが発生します。
  • エラーが示しているクラスファイルの場所は3つあります。
  • 環境変数を変更してクラスパスを設定することでエラーを解決することができます。
回答を見る
  • ベストアンサー

class path

ある、Windows バッチ ファイル を起動すると、 Exception in thread"main"java.lang.NoClassDefFoundError:・・・ と出てしまいます。errorがしめしているclass ファイルの場所は、 (1)C:\Users\ひろゆき\Desktop\メモリアル3RD\メモリアル3RD\MEMORIAL3RD\MemorialPackeage\build\classes\net\sf\odinms\net\channel (2)C:\Users\ひろゆき\Desktop\メモリアル3RD\メモリアル3RD\MEMORIAL3RD\MemorialPackeage\build\classes\net\sf\odinms\net\login (3)C:\Users\ひろゆき\Desktop\メモリアル3RD\メモリアル3RD\MEMORIAL3RD\MemorialPackeage\build\classes\net\sf\odinms\net\world の3つです。環境変数を変更するやり方で、clas pathになんと入力したらいいかを(C:\Users\・・・と入力する。といった回答法で)教えてください。javaは6upadeat10で、OSはvistaです。

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

次を参照下さい。 http://okwave.jp/qa5412628.html

関連するQ&A

  • SunのJavaからMSのJavaにしかないクラスを利用したい

    初めて投稿させていただきます。 私は、EXEを作れる、DLLに触れるというメリットでMicrosoft SDK for Java 4.0を使っていたのですが、2007年にMicrosoftが完全にサポートを打ち切ってしまうことからSunのJDKに開発環境を移行しようと考えています。 そこで、MSが提供していた独自クラスをSunのJavaで使えないかと思って調べています。 具体的にはまず、MS Javaで使われているクラスファイルを吐き出すためにコマンドプロンプトで > clspack /auto として、classes.zipを作成しました。これをSunのJavaをコンパイルするときに > javac -cp C:?WINDOWS?Java?Classes?classes.zip hoge.java > javac -Xbootclasspath C:?WINDOWS?Java?Classes?classes.zip hoge.java とすると、コンパイルは通るのですが、 > java hoge > java -cp C:?WINDOWS?Java?Classes?classes.zip hoge > java -Xbootclasspath C:?WINDOWS?Java?Classes?classes.zip hoge 等として、実行しようとすると次のようなエラーが表示されてしまいます。 Exception in thread "main" java.lang.NoClassDefFoundError: com/ms/win32/User32 at hoge.main(hoge.java:4) Exception in thread "main" java.lang.NoClassDefFoundError: hoge Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/security/ProtectionDomain ちなみに、hoge.javaはMSのクラスが使えるかを確認するために作ったサンプルです。ソースコードは以下のような内容です。 import com.ms.win32.*; class hoge{  public static void main(String[] args){   User32.MessageBox(0,"Hello.","Java!!",0);  } } MSの提供しているクラスを使うことは出来ないのでしょうか?また、MS以外のものでデバイスにアクセスすることを可能にするクラスは提供されていないでしょうか?

  • メインクラス○○.classが見つからなかったか…

    JAVA 初心者です。 簡単な Hello World プログラムを作って実行しましたが、 「エラー: メインクラスHello.classが見つからなかったかロードできませんでした」 と表示されエラーになっています。 >javacc -version javac 1.7.0_03 >java -version java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode) >cd c:\Users\me\Documents\java_test >javac Hello.java としてコンパイルは通るのですが、 >java Hello.class とすると、上記エラーメッセージが表示されます。 システム環境変数には C:\glassfish3\jdk7\bin を追加しました。 初歩的なところでつまずいていると思うのですが、ご教示のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • EXCELでフルパスから2つ目¥を抽出したい

    EXCEL2010を使用しています。 フルパスから、2つめの¥で区切って列に表示したいです。 例えば、A1セルに C:\Users\hanako\Desktop\test が入力されているので、 A1セルにC:\Users\ B1セルにhanako\Desktop\test のように、区切りたいのです。 ご教示の程、どうぞよろしくお願い致します。

  • javaコマンドが実行できません。

    C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes>java C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\M ain.class と実行すると Exception in thread "main" java.lang.NoClassDefFoundError: C:\Work\workspac e\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\Main/class とExceptionが発生します。 .class拡張子を除いて C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes>java C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\M ainと実行すると Exception in thread "main" java.lang.NoClassDefFoundError: C:\Work\workspac e\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\Main とExceptionが発生します。 classファイルはC:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\ createMaster\util\Mainに存在します。 javaコマンド命令文の利用方法が分からなくて投稿します。 お答え宜しくお願いします。

  • パスがあってない?指定されたパスが見つかりません

    【OS】Win7 32bit bat((1)とする)で、 devcon.exe update "C:\Program Files\Microsoft Xbox 360 Accessories\Xusb21.inf" "USB\VID_045E&PID_028E" del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll pause というコマンドを実行するときに、 一行目のdevcon.exeのupdateはDrivers updated successfullyと出るので、実行されていると思います。 しかし、二行目のdelのコマンドは、 「C:\windows\system32>del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll 指定されたパスが見つかりません」と出ます。 パスが見つからないのだから、環境変数のpathに C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja を追加すればうまくいくだろうと追加したのですが、やはり同じ結果に。 違うbat((2)とする)もありまして、 devcon.exe update "C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360c.inf" "USB\VID_045E&PID_028E" pause というbatなのですが、こちらはdevconのupdateだけですがupdated succsessfullyと出るので、 C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja は通ってることになると思うんです。 x360cps.dllという文字列を「プログラムとファイルの検索」から検索して、場所を確認するとC:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja となっているし、このフォルダ内のx360cps.dllをcmd画面にドラッグ&ドロップすると、 C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll と出ます。 削除自体はデスクトップからできるのですが、 なぜこの場合「指定されたパスが見つかりません」と出るのか納得がいきません。 フォルダ1,2のフォルダ名がいけないのでしょうか? でも(2)が実行されてるしなあ。updateとdelではフォルダ名によってできるできないがわかれるのでしょうか? フォルダ1の名前は全角カタカナ、フォルダ2の名前は漢字、半角スペース、全角カタカナの混在です。 この場合なぜ「指定されたパスが見つかりません」と出るのかどなたか教えていただけませんか? 足りない情報としてどんなものがあるかわからないので、足りない情報があればおっしゃってください。 ちなみに、batやpathについてはネットで読みかじった程度の知識しか持っておりません。 こんな者への回答ですが、宜しくお願いします。

  • JAVAのパス設定を教えてください。

    パソコンとプログラム初心者レベルです。 JAVAのコンパイルがうまくいきません。 これまでの経緯としては、JAVAの開発環境「J2SDK-1.4.2_15」のwindows版をダウンロードして、インストールしたのですが、そのとき間違えてNetBeans5.5.1もダウンロードしました。 コマンドプロンプトで、C:\src\hello>javac helli.javaでEnterを押すと、「JAVAC は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されます。 また、インストールしたものは、「J2DK-1.4.2_15」なのに、インストール確認でJava-Versionを入力すると、 Java(TM)2Runtime Envirnment,Standard Edition(build1.6.1_ 01-b01)Java Hotspot(Tm) Client VM(Built1.6.1_01-b01,Mixed Mode)となり、違うバージョンらしい番号が出ます。 どちらの番号も試してみましたがうまくいきません。 また、Administratorのユーザー環境設定とシステム環境変数はどう違うのでしょうか。(どちらもパス入力しました。) お詳しい方おられましたら教えてください。

    • ベストアンサー
    • Java
  • デスクトップ上のファイルへのパスを教えてください。

    デスクトップ上にあるファイルへのパスはWindows XPとWindows 7の場合は以下のようになっていますが、Windows 8の場合はどのようになるのでしょうか。Windows 7と同様と考えてよろしいでしょうか。 ○Windows XP C:\Documents and Settings\ユーザー名\デスクトップ\ファイル名.拡張子 ○Windows 7 C:\Users\ユーザー名\Desktop\ファイル名.拡張子

  • classファイルが作成されない

    コマンドを使ってjavaを実行しclassファイルを作成しようとしているのですが、実行できません。 実行したいパターンとしてhtml→javaファイルを呼び出す形にしたいのですが、クラスファイルができません。 javaファイルの存在する箇所に設定し,javac srv_escape.javaを記入すると 以下のエラーが出ました。このときの解決策はどのようにすればいいのでしょうか? Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/tools/javac/Main と出ます。 他のQ&Aを見たりはしてたのですがよくわからなかったので質問しました。 このときの状態としてjavaソースの場所はC:\Program Files\Apache Tomcat 4.0\webapps\jsp10でjavac.exeファイルあり。 htmlファイルはC:\Program Files\Apache Tomcat 4.0\webapps\jsp10\day08-2においています。 ソース内容が html <html><head> <title>予約文字のエスケープ></title> </head> <body> <h1>予約文字のエスケープ</h1> <form name="POST" action=/jsp/servlet/srv_escape"> 入力文字: <input type="text" name="esc" size="30" /> <input type="submit" value="送信" /> </form> </html> java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class srv_escape extends HttpServlet { int i; public void doPost(HttpServletRequest request, HttpServletResponse response ) throws ServletException,IOException { response.setGontentType("text/html;charset=Shift_JIS"); PrintWriter out=response.getWriter(); out.println("<html><head>"); out.println("<title>予約文字のエスケープ</title>"); out.println("</head><body>"); out.println(<h1>予約文字のエスケープ</h1>"); out.println("入力した文字:"); out.println(strEscape(request.getParameter("esc"))); out.println("</body></html>"); } private String strEscape(String strEsc){ StringBuffer strResult=new StringBuffer(); for(int i=0;i<strEsc.length();i++){ switch(strEsc.charAt(i)){ case '&': strResult.append("&amp;"); break; case '<' : strResult.append("&lt;"); break; case '>' : strResult.append("&gt;"); break; default: strResult.append(strEsc.charAt(i)); break; } } return strResult.toString(); } } です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Powershellで複数のcsvファイルを一つに

    powershellの初心者です。 PowerShellで複数のcsvファイルを一つにする必要にせまり ネット情報を探して以下がヒットしましたが 初心者なのこの情報をどう利用して良いのかが判りません。 以下の具体例でコード(Join.ps1)を教えてください。 以下の3つのファイルを C:\Users\TAC_\Desktop\Test\Drive1.csv C:\Users\TAC_\Desktop\Test\Drive2.csv C:\Users\TAC_\Desktop\Test\Drive3.csv 以下のファイル名に保存(まとめる) C:\Users\TAC_\Desktop\Test\Join.csv C:\Users\TAC_\Desktop\Test\Join.ps1を起動させると 該当する3つのCSVファイルを結合したJoin.csvを作成する

  • VBA:テキストファイルのパスを、変数に置き換え

    エクセルに、CSVファイルを取り込むため、マクロ記録をしました。↓ With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\hatena\Desktop\新しいフォルダ\ID\21008689.CSV", Destination:=Range("$A$1")) .Name = "21008689_4" .FieldNames = True .RowNumbers = False 以下省略 End With そこで、コード2行目の「"TEXT;C:\Users\hatena\Desktop\新しいフォルダ\ID\21008689.CSV",」 の部分を、変数に記録されたパスに置き換えたいのですが、どうすればよいでしょうか? 変数に「C:\Users\hatena\Desktop\新しいフォルダ\ID\21008689.CSV」を代入して 「TEXT;」の後に変数名を記述しても、色々試しましたがどうもうまくいきません。 そもそも、このようなことはできないのでしょうか? 有識者の方々、どうぞよろしくご教授お願いいたします。