//看樓主問為什麼能編譯但不能運行,說明樓主應該是Java的初學者吧,Java程序其實編譯和運行是兩回事,沒有必然聯系的。剛才你的問題,在下面有注釋的,這樣就可以運行了,記得把類修改為test.java哦。運行下面
import java.util.*;
//這里不能用car ,重新起一個名字,因為和下面的class Car沖突了。
public class test {
private static Scanner input;
public static void main(String args[]){
input = new Scanner(System.in);
System.out.println("請輸入車主姓名,車速,方向盤角度");
Car car=new Car(input.next(),input.nextFloat(),input.nextFloat());
System.out.println("車主姓名為:"+car.getOwnerName());
System.out.println("當前車速為:"+car.getCurSpeed());
System.out.println("當前方向盤角度為:"+car.getCurDirInDegree());
System.out.println("修改車速");
System.out.println("新的車速為:");
car.changeSpeed(input.nextFloat());
System.out.println("在調用changeSpeed(80)後,車速為"+car.getCurSpeed());
car.stop();
System.out.println("在調用stop()後,車速為"+car.getCurSpeed());
}
}
class Car {
private String ownerName; //車主姓名
private float curSpeed; //當前車速
private float curDirInDegree; //當前方向盤轉向角度
public Car (String ownerName){
this.ownerName=ownerName;
}
public Car (String ownerName, float speed, float dirInDegree){
this(ownerName);
curSpeed=speed;
curDirInDegree=dirInDegree;
}
public String getOwnerName() { //提供對車主姓名的訪問
return ownerName;
}
public float getCurDirInDegree() { //提供對當前方向盤轉向角度的訪問
return curDirInDegree;
}
public float getCurSpeed() { //提供對當前車速的訪問
return curSpeed;
}
public void changeSpeed(float curSpeed) { //提供改變當前的車速
this.curSpeed=curSpeed;
}
public void stop(){ //提供停車
curSpeed = 0;
}
}
請採納答案,支持我一下。
『貳』 java可以編譯但是不能運行
java.lang.NoClassDefFoundError:
當 Java 虛擬機或 ClassLoader 實例試圖在類的定義中載入(作為通常方法調用的一部分或者作為使用 new 表達式創建的新實例的一部分),但無法找到該類的定義時,拋出此異常。
當前執行的類被編譯時,所搜索的類定義存在,但無法再找到該定義。
檢查拼寫
『叄』 java代碼能編譯但運行沒有效果
add(t,BorderLayout.CENTER);改為add(p,BorderLayout.CENTER);
修改後的代碼:
importjava.awt.*;
importjavax.swing.*;
publicclassjsqextendsJFrame
{
JPanelp=newJPanel(newGridLayout(5,4,3,3));
JTextFieldt=newJTextField();
Stringst[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+","exit"};
publicjsq(Strings)
{
setLayout(newBorderLayout());
JButtonb[];
b=newJButton[st.length];
for(inti=0;i<st.length;i++)
{
b[i]=newJButton(st[i]);
p.add(b[i]);
}
add(p,BorderLayout.CENTER); //加一句
add(t,BorderLayout.NORTH); //改為NORTH
setVisible(true);
setSize(350,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
publicstaticvoidmain(String[]args)
{
jsqjs=newjsq("網格布局計算器");
}
}
執行效果:
『肆』 為什麼我的java可以編譯但是卻運行不了
能具體的把你的代碼貼上來?
配置了環境變數了沒。有無main函數?
『伍』 為什麼Java程序可以編譯卻不能運行解釋
這個問題是你classpath配置的有問題,
估計你是沒在classpath下加上當前路徑,所以JVM只能找系統的classpath,沒找到你的文件。
在classpath系統環境變數中加上.;試試。
『陸』 為什麼java程序能編譯卻不能運行
哦,你沒寫程序的入口方法
public
static
void
main(string[]
args){}
在main函數的方法體中構造個對象調用你所寫的方法即可
『柒』 為什麼我編寫的一個JAVA程序不能編譯,但是可以運行
首先,我實在受不了ufo2030ufo 小白同志,人家顯然是寫j2me程序,不懂別叫嘛。
然後呢,我也很服樓主,一個不能編譯的程序可能運行么?
樓主所說的不能編譯究竟是指什麼?不能產生class?jad?jar?還是別的什麼?老實說,你的兩個程序其實一樣,既然第二個正確,第一個不會錯的,應該是運行環境配置有問題
『捌』 我運行java程序的時候可以編譯通過但不能運行是為什麼
是你的class_path有問題,可能沒有設置本地路徑"."為classpath
http://book.csdn.net/bookfiles/135/1001354591.shtml
詳解
『玖』 java編譯成功,但是不能運行,怎麼回事。
起初你或許會認為是一個莫名其妙的錯誤,因為代碼根本一點問題的都沒有,可運行期間總是報這個錯,比較郁悶。
出現Could not find the main class.program will exit和java.lang.UnsupportedClassVersionError 錯誤的原因,是因為我們使用高版本的JDK編譯的Java class文件試圖在較低版本的JVM上運行,所報的錯誤。
因為,高版本的JDK生成的class文件使用的格式,可能與低版本的JDK的.class文件格式不同。這樣,低版本的JVM無法解釋執行這個.class文件,會拋出Could not find the main class.program will exit,java.lang.UnsupportedClassVersionError不支持的Class版本錯誤。
這個錯誤尤其在JDK5與JDK5之前的版本上表現明顯。因為,JDK5在Java語法上作了不少增強,引入了一些新的.class文件的元素,導致舊版本的JVM無法解釋、執行.class文件。即使這個類並沒有使用任何JDK5的新元素,但是JDK5生成的.class文件,JDK1.4及其以前的JVM都無法辨認!
詳細請參考:
http://blog.csdn.net/wangcheng8080/archive/2008/05/29/2492265.aspx