我正在尝试通过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 &
我可能做错了什么?请不要主要的方法论点不是以前的问题,但我删除了它,因为参数参数不是强制性的。
答案 0 :(得分:3)
你忘记了主类参数中的String [] args。那可能就是这样。