错误:找不到或加载主类

时间:2017-03-06 10:49:06

标签: java

我正在尝试通过DIY java应用程序在openshift中编译和运行我的java程序。我已经设法编译了我的*.java文件并输出了我的*.class没有错误,但是当我尝试运行我的主类时,我收到错误消息

  

错误:无法找到或加载主类

这是我的Listener.java代码

package matchfaces;

import Luxand.FSDK;

public class Listener {

     public static final String JAVABRIDGE_PORT = "5699";
     static final php.java.bridge.JavaBridgeRunner runner =
     php.java.bridge.JavaBridgeRunner.getInstance(JAVABRIDGE_PORT);
    /**
     * @param args the command line arguments
     * @throws java.lang.InterruptedException
     */
    public static void main(  String[] args  ) {
        // TODO code application logic here
        try {
              System.loadLibrary("facesdk");
             int res = FSDK.ActivateLibrary("XXXX");
             FSDK.Initialize();
             FSDK.SetFaceDetectionParameters(true, true, 384);
             FSDK.SetFaceDetectionThreshold(5);

             if (res == FSDK.FSDKE_OK) {
                    System.out.printf("FaceSDK activated", "FaceSDK activated\n");
            } else {
                     System.out.printf("Error activating FaceSDK: ", res + "\n");
            }
    } catch (java.lang.UnsatisfiedLinkError e) {
             System.out.printf("exception ", e.getMessage());
    }
    try{
    runner.waitFor();
    }catch(Exception ex){
        System.out.printf("Error: ", ex.getMessage() + "\n");
    }
    // System.exit(0);
}

}

上面的主类没有任何问题,因为当我使用netbeans运行它时,它会编译并正确运行。

但是当我尝试在openshift中使用shell脚本时,它不起作用。
我的启动shell脚本如下:

cd $OPENSHIFT_DATA_DIR

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
export PATH=$JAVA_HOME/bin:$PATH

libs="libs"

export LIB=$OPENSHIFT_REPO_DIR$libs

src="src"

export JAVA_FILES=$OPENSHIFT_REPO_DIR$src

export MATCHFACES=$OPENSHIFT_REPO_DIR$src/matchfaces

export JARPATH=$(JARS=("$LIB"/*.jar); IFS=:; echo "${JARS[*]}")

cd $OPENSHIFT_REPO_DIR

if [[ -z "$OPENSHIFT_INTERNAL_IP" ]]; then export OPENSHIFT_INTERNAL_IP="$OPENSHIFT_DIY_IP"; fi

if [[ -z "$OPENSHIFT_INTERNAL_PORT" ]]; then export OPENSHIFT_INTERNAL_PORT="$OPENSHIFT_DIY_PORT"; fi

javac -classpath $JARPATH $MATCHFACES/*.java > ${OPENSHIFT_DIY_LOG_DIR}/compile.log 2>&1 &

cd ${OPENSHIFT_REPO_DIR}/src/matchfaces

dir > ${OPENSHIFT_DIY_LOG_DIR}/output1.log 2>&1 &

${OPENSHIFT_REPO_DIR} > ${OPENSHIFT_DIY_LOG_DIR}/output2.log 2>&1 &

java Listener > ${OPENSHIFT_DIY_LOG_DIR}/Listener.log 2>&1 &

我可能做错了什么?请不要主要的方法论点不是以前的问题,但我删除了它,因为参数参数不是强制性的。

1 个答案:

答案 0 :(得分:3)

你忘记了主类参数中的String [] args。那可能就是这样。