2015-04-24 189 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中,你已经设置了“。”但不是在第二种情况下,您将 导出您的类路径。

相关问题