2015-04-24 188 views
0

我想從可執行文件調用Java代碼。我的Java代碼如下:Java:錯誤:無法找到或加載主類

CostCalculatorType.java:

public interface CostCalculatorType { 
    public double calculateCost(double[] chromosome); 
} 

Main.java:

import org.plyjy.factory.JythonObjectFactory; 

public class Main { 

    public static void main(String[] args) { 
     double[] a = new double[]{1.3653333, 0.0000000, -1.8204444, -1.8204444}; 
double result; 

     JythonObjectFactory factory = JythonObjectFactory.getInstance(); 
     CostCalculatorType costCalc = (CostCalculatorType) 
      factory.createObject(CostCalculatorType.class, "CostCalculator"); 
     result = costCalc.calculateCost(a); 
     System.out.println("Result = "+result); 
    } 
} 

當我運行下面的命令,我得到所需的輸出:

javac -cp ".:/home/ch/PlyJy.jar:/home/ch/jython.jar" CostCalculatorType.java Main.java 
java -cp ".:/home/ch/PlyJy.jar:/home/ch/jython.jar" CostCalculatorType.java Main 

Result = 3324.260315871956 

但是,當我設置類路徑並運行以下命令時,出現錯誤。

export CLASSPATH=/home/ch/jython.jar:$CLASSPATH 
export CLASSPATH=/home/ch/PlyJy.jar:$CLASSPATH 
javac CostCalculatorType.java Main.java 
java Main 

Error: Could not find or load main class Main 

我希望能夠做到這一點,而無需使用-cp選項,因爲,我要脫掉的主要方法,它移動到不同的方法,從不同的程序中調用它。如何在不使用-cp選項的情況下獲得所需的輸出?

回答

0

您需要在類路徑中添加您自己的源代碼所在的目錄。

如果這是當前目錄,然後

export CLASSPATH=.:$CLASSPATH

+0

工作。謝謝 :) –

0

的錯誤建議,主要都找不到,哪裏是主要? 它在你目前的目錄中? 在java -cp中,你已經設置了「。」但不是在第二種情況下,您將 導出您的類路徑。

相關問題