• 締切済み

postfixの.forwardについて、教えて!

postfixの.forwardのパイプ処理を使って、javaのプログラムを呼び出すけど、エラー発生します。 .forwardファイル中身に"|java ReplyTest"を書きました エラーは:   Command died with status 1: "java ReplyTest". Command output: Exception in thread "main"      java.lang.NoClassDefFoundError: while resolving class: ReplyTest at java.lang.VMClassLoader.resolveClass(java.lang.Class) ...... (/var/spool/postfix/java.version=1.4.2) Caused by: java.lang.ClassNotFoundException: javax.mail.Session not found in [file:/usr/share/java/libgcj-3.4.6.jar, file:./, core:/] at java.net.URLClassLoader.findClass(java.lang.String) このように出た。 javaのプログラム実行前に、クラスパスを設定のは知ってますけど。単純にクラスパスを設定、javaプログラムを実行するのは、問題なし。.forwardのパイプを使って、自動的に実行すれば、上のようにエラー出た。 postfixのjavaクラスパスに関する環境変数有るか?どう設定しますか? 申し訳ないですが、教えてください。 お願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

環境変数を設定してからjavaを起動するシェルスクリプトを書いて、それを.forwardから起動すればいいです。 他の手段もありますが、初心者にはそれがわかりやすいでしょう。

pepsi1536
質問者

お礼

ありがとうございます。もう解決しました。 コマンド命令にclasspathを指定します

関連するQ&A

  • Java2Dの実行エラー(2)

    作成したJavaのソースをjavacでコンパイルを通し、 そのあとにjavaコマンドで実行を通したところ、 以下のようなエラーメッセージが出力され実行できませんでした。 (作成したクラスファイルは「EdgeDetection.class」です。) ------------------------------------------------- C:\TEMP>java -cp . EdgeDetection Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at EdgeDetection.main(EdgeDetection.java:31) ------------------------------------------------- このエラーを解消するためにもクラスパスの設定(-classpathオプション)もしましたが、駄目でした。 この現象を解決するには、どのようにしたらよろしいのでしょうか?

    • ベストアンサー
    • Java
  • NoClassDefFoundErrorの解決方法

    netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。

  • RMI

    ここのサイト通りの手順でやったのですが http://www.hellohiro.com/rmi.htm C:\JavaHello\RMI>java -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:///C:\JavaHello\RMI\ HelloWorldObj を実行するところで Exception in thread "main" java.lang.NoClassDefFoundError: Files\Java\RMI Caused by: java.lang.ClassNotFoundException: Files\Java\RMI\ at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: Files\Java\RMI\. Program will exit. このようなエラーメッセージがでて解決できません。 エラーをなくす方法を教えてください!

  • JARファイルの起動方法

    現在FORTEのツールを使ってJAVAの勉強をしているのですが、FORTEで作ったアプリをJARファイルにしてFORTE上での実行は問題なくできました。しかしFORTEを使わずにDOS上からコマンドでJARファイルを起動してもエラーが出ます。多分クラスパスの設定の問題ではないかと思うのですがどうもうまくいきません。誰か教えていただけないでしょうか?エラーは C:\>java -jar SerialPort.jar Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/SerialPort EventListener at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:502) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12

    • ベストアンサー
    • Java
  • CentOS4における自動起動について

    お世話になります。 CentOSにてプログラムを自動起動させたいと思っています。 rc*.dフォルダにスクリプトを作成し、サンプルプログラムが 動作することまでは確認できましたが、log4jを組み込んだところ プログラムが実行できなくなってしまいました。 #スクリプトをコマンドで実行すると、問題なく実行できました。 どなたかご教示ください。よろしくお願いします。 <エラー箇所> // 設定ファイルの読み込み DOMConfigurator.configure(パス + "log4j.xml"); <エラー内容> java.lang.ClassNotFoundException: org.apache.log4j.xml.DOMConfigurator at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 【動作環境】 CentOS4 Java6 log4j 1.2.15

    • ベストアンサー
    • Java
  • java実行時のメッセージについて

    50歳にてjavaを勉強しようとしているものです。 javaの本より例題を作成してみたのですが、うまくいきません。 javaをインストールしてjavacが正常でいざ実行した際、以下のメッセージが表示されました。何の意味かさっぱりわかりません。このサイトで質問するレベルではないかと思いますが、アドバイスいただければ幸いです。 作成したプログラムは class hello { public static void main(String[] args) { System.out.println("こんにちは"); } } javac ではエラー表示なし → C:\javabook\part1>javac Hello.java C:\javabook\part1> これを実行すると、 C:\javabook\part1>java Hello Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: he llo) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 1) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: Hello. Program will exit. と表示されます。 何がエラーとなっているのでしょうか?

    • ベストアンサー
    • Java
  • javaの実行時のエラー

    javaを使って圧縮プログラムを作ったのですがコンパイルは通るのに実行時に Exception in thread "main"java.lang.StringIndexOutOfBoundsException: String index out of range: 80 at java.lang.String.charAt(String.java:455) at ashuku.char1(ashuku.java:51) at ashuku.kensa1(ashuku.java:23) at ashuku.main(ashuku.java:9) というエラーが出ます。このエラーの意味は何なのですか?教えてください。プログラムが長くて載せられないので、このエラーが出たときに何をチェックすればいいか教えてもらえると助かります。お願いします

    • ベストアンサー
    • Java
  • [JAVA]ProcessBuilderで「java -version」を実行できない

    以下のプログラムで「java -version」を実行しようとするとエラーになります。「java」だけですと実行できますが「-version」をつけるとエラーになります。 ---プログラムの内容--- import java.io.*; public class test4518 { public static void main(String[] args) throws Throwable{ ProcessBuilder pb = new ProcessBuilder(new String[]{"java -version"}); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } ーーーエラーの内容ーーー Exception in thread "main" java.io.IOException: CreateProcess: "java -version" error=2 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) at java.lang.ProcessBuilder.start(Unknown Source) at test4518.main(test4518.java:5)

    • ベストアンサー
    • Java
  • jdbcを利用したpostgres接続

    Solaris9/02 + PostgreSQL7.2.3 で構築しました。 java -version 1.4.0_01 です。 PostgreSQL の Configure時に --with-javaオプションを付け、 /usr/local/pgsql/share/java 配下にpostgres.jarが出来ました。 /home/ssm3u の .cshrcに setenv JAVA_HOME /usr/j2se setenv CLASSPATH /usr/local/pgsql/share/java/postgres.jar:. (postgres.jarファイルとカレント) を追加し、 % vi FirstDBAccess.java import java.sql.*; public class FirstDBAccess {  public static void main(String argv[]) {   try {    Class.forName("org.postgresql.Driver");   } catch (Exception e) {    e.printStackTrace();   }  } } % javac FirstDBAccess.java % java FirstDBAccess と実行すると、 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at FirstDBAccess.main(FirstDBAccess.java:5) となります。 上記エラーになるのは CLASSPATH設定がおかしい時と思うのですが、 何がおかしいのかわかりません。 Oracleとか他のDBの時はあっさりできたのに・・・ 他に設定が必要なのでしょうか? 見直せば良い点などお教えいただければ助かります。

  • コンストラクターの生成でエラーが出ます。

    こんにちは、site7(tokopokoからIDを変えました)と言います。 リフレクションを使って、 Double(doulbe)のコンストラクターを呼び出すプログラムを作りました。 しかし、実行するとエラーになります。 原因または解決策をご存知の方はいらっしゃいませんか。 ■プログラム import java.lang.reflect.*; class TestConstructor { public static Class<?> type; public static void main(String[] args) { try { type = Class.forName("java.lang.Double"); Double d = (Double)TestConstructor.createInstance(3.0); System.out.println(d.toString()); } catch (Exception e) { e.printStackTrace(); } } public static Object createInstance(Object... args) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { Class<?>[] parameterTypes = new Class<?>[args.length]; for (int i = 0; i < args.length; i++) { parameterTypes[i] = args[i].getClass(); } Constructor<?> constructor = type.getConstructor(parameterTypes); //Constructor<?> constructor = type.getConstructor(double.class); return constructor.newInstance(args); } } ■実行例 D:\>javac TestConstructor.java D:\>java TestConstructor java.lang.NoSuchMethodException: java.lang.Double.<init>(java.lang.Double) at java.lang.Class.getConstructor0(Class.java:2706) at java.lang.Class.getConstructor(Class.java:1657) at TestConstructor.createInstance(TestConstructor.java:21) at TestConstructor.main(TestConstructor.java:7) ■私の環境は以下の通りです。 OS: Microsoft Windows XP Professional SP2 java: java version "1.6.0_03"

    • ベストアンサー
    • Java