1. java 為什麼進入DOS運行不起來
出現該錯誤的幾種可能:
1、運行JAVA命令時的路徑不對,應該在CLASS文件所在目錄或包所在的目錄
2、不存在該CLASS文件
3、存在該CLASS文件但沒有相應的MAIN函數
4、前面生成的CLASS文件有誤,修改JAVA後沒有重新編譯,則重新JAVAC一下
2. dos或unix下運行java程序
1.
javac是編譯java文件,編譯後的java文件,是創建了包名的一個文件路徑,比如直接執行javac A.java,那麼會在當前目錄下創建如下class文件:a/b/A.class
2.
2當執行java命令的時候,如果還在當前目錄下執行java命令就會報錯,因為在當前目錄下,並不能找到A.class。
3.
當越包引用的時候,如題。那麼在執行javac A.java到時候,編譯器會尋找a/c/B.class文件,如果沒有編譯B.java文件,那麼就不會存在a/c/B.class文件,就會報錯了。所以在執行javac A.java的時候,要首先編譯該類調用的其它包中的所有文件。
4.
sun還有一個編譯工具叫Ant,這個東西可以比較輕易的解決這個問題,具體Ant的使用就自己查資料吧。事實上各種的編譯軟體都是使用Ant編譯的。除非他自己寫一個類似功能的軟體。
3. java程序怎麼執行 java命令
用javac命令加上的java源文件的路徑就會編譯成.class文件。用java命令java加上.class文件的路徑就會運行java程序。注意:第一,如果你在doc環境下直接輸入javac和java命令必須配置jdk的環境變數。第二,編譯的時候文件需要加上.java後綴,運行的時候不需要加後綴。
4. cmd運行java jar包 運行一段時間後 服務會卡住 按一下鍵盤又可以繼續執行
看你描述的現象,而且是通過 cmd 命令框啟動的進程。
推測一種可能性:DOS命令窗口屬性中有一條是【快速編輯模式】,快速編輯模式下,當DOS窗口運行的過程中,我們如果將滑鼠游標點擊在某一處日誌的時候,這個模式會認為我們在抓取日誌,為了防止日誌滾動影響用戶操作,Windows將此進程掛起,當我們操作完成(即描述中的按下鍵盤的某一處)時會將進程恢復,繼續處理後續的任務。這個操作可以將如下代碼做個.bat腳本,將DOS窗口默認模式設置為【取消快速編輯模式】這樣就可以防止手誤影響進程運行了。
@echo off
reg add HKEY_CURRENT_USERConsole /v QuickEdit /t REG_DWORD /d 00000000 /f
5. dos命令編譯速度慢 Javac命令後,要反應很長時間
對於復雜的java結構,確實不適合javac的編譯。你可以使用ide,例如eclipse,netbean等。
如果你希望命令行編譯,以前流行ant,現在流行的是maven。純用javac的幾乎沒有。
6. 在DOS下執行JAVAC命令總是出錯
關於你的JDK設置:「JAVA_HOME=C:\Java\jdk1.6.0_07;PATH=C:\Java\jdk1.6.0_07\bin;C:\Java\jre1.6.0_07\bin;
CLASSPATH=C:\Java\jdk1.6.0_07\lib;C:\Java\jre1.6.0_07\lib 」
這是根據系統而言的。可嘗試按下面這樣依葫蘆畫瓢了
classpath設置:
C:\Program Files\Java\jdk1.5.0_02\lib\dt.jar;C:\Program Files\Java\jdk1.5.0_02\lib\tools.jar;
path設置
C:\WINDOWS\system32;C:\Program Files\Java\jdk1.5.0_02\bin;
classpath為新建的環境變數。path也是但不要丟了系統原來的設置,中間用分號隔開即可
看看能不能運行了~
7. CMD中javac和java命令的問題
「類名.java」這是一個固定的語法規則,就像「1+1=2」是類似的道理。「包名.類名.java」之所以會出錯是因為沒有這樣的語法規則,就像「你在大街上隨便碰見個人就讓他還你錢 你說人家會幹嘛」另外你既然提到了src目錄,說明你在用java編程工具寫代碼了,就可以不用cmd這種原始工具編譯代碼了。cmd命令只適合簡單簡短的代碼,是初學者用來熟悉基礎代碼的。
java命令和javac命令,java命令是運行命令,javac是編譯命令。拿煮飯舉例子:一個java程序,javac命令是負責淘米煮飯的而java命令是負責吃飯的。當你執行java命令的時候,說明煮飯淘米已經完成。如果這兩個順序顛倒了飯都沒煮你吃什麼,不報錯才怪。「包名。類名.java」這種語法也是錯的
如果還是不明白可以留下qq遠程加好友指導你,這種問題最好是能看到源代碼,比較好解決,就單單一個圖不能直接判斷只能知道大概可能是哪些原因或者問題。不能有正對性的解決問題
8. 用Java編的程序執行時的效率比C++慢嗎
java是解釋語言,一般來說解釋語言的效率跟編譯型語言效率無法相提並論(差距在幾個數量級) 。 但是java有特殊的熱點編譯技術, 就是循環次數多的代碼段會被進一步優化編譯, 這使得java的性能有所提高,按sun的某些文檔的說法,這個效率可能提高到跟C++相當的水平, 但是我是沒見過效率能到這個程度, 基本上還是會慢不少
9. java cmd命令下的怪事
你檢查一下生成的class文件在哪,再檢查一下環境變數classpath,估計你把class文件編譯到了當前目錄,classpath路徑指向的文件夾沒有該class文件,所以執行java命令時會發生錯誤,建議你將生成的class文件放在classpath指向的文件夾下,或將環境變數classpath里的值後面加一個分號和一個英文句號即 」;.」 (代表當前目錄),再運行試試.
10. java 編譯優化問題
java編譯的結果是位元組碼而不是二進制,所以在運行時vm的優化才是重要的,包括VM的回收策略、分配給VM內存的大小都能在一定程度上影響性能。Sun的VM支持熱點編譯,對高頻執行的代碼段翻譯的2進制會進行緩存,這也是VM的一種優化。
IBM JVM處理數學運算速度最快,BEA JVM處理大量線程和網路socket性能最好,而Sun JVM處理通常的商業邏輯性能最好。不過Hotspot的Server mode被報告有穩定性的問題。
Java 的最大優勢不是體現在執行速度上,所以對Compiler的要求並不如c++那樣高,代碼級的優化還需要程序員本身的功底。
貼個java的運行參數:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print proct version and exit
-version:<value>
require the specified version to run
-showversion print proct version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see
java.lang.instrument
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs rece use of OS signals by Java/VM (see
documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
Java虛擬機(JVM)參數配置說明
在Java、J2EE大型應用中,JVM非標准參數的配置直接關繫到整個系統的性能。
JVM非標准參數指的是JVM底層的一些配置參數,這些參數在一般開發中默認即可,不需
要任何配置。但是在生產環境中,為了提高性能,往往需要調整這些參數,以求系統達
到最佳新能。
另外這些參數的配置也是影響系統穩定性的一個重要因素,相信大多數Java開發人員都
見過「OutOfMemory」類型的錯誤。呵呵,這其中很可能就是JVM參數配置不當或者就沒
有配置沒意識到配置引起的。
為了說明這些參數,還需要說說JDK中的命令行工具一些知識做鋪墊。
首先看如何獲取這些命令配置信息說明:
假設你是windows平台,你安裝了J2SDK,那麼現在你從cmd控制台窗口進入J2SDK安裝目
錄下的bin目錄,然後運行java命令,出現如下結果,這些就是包括java.exe工具的和
JVM的所有命令都在裡面。
-----------------------------------------------------------------------
D:\j2sdk15\bin>java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print proct version and exit
-version:<value>
require the specified version to run
-showversion print proct version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see
java.lang.instrument
-----------------------------------------------------------------------
在控制台輸出信息中,有個-X(注意是大寫)的命令,這個正是查看JVM配置參數的命
令。
其次,用java -X 命令查看JVM的配置說明:
運行後如下結果,這些就是配置JVM參數的秘密武器,這些信息都是英文的,為了方便
閱讀,我根據自己的理解翻譯成中文了(不準確的地方還請各位博友斧正)
-----------------------------------------------------------------------
D:\j2sdk15\bin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs rece use of OS signals by Java/VM (see
documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.
-----------------------------------------------------------------------
JVM配置參數中文說明:
-----------------------------------------------------------------------
1、-Xmixed mixed mode execution (default)
混合模式執行
2、-Xint interpreted mode execution only
解釋模式執行
3、-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
設置zip/jar資源或者類(.class文件)存放目錄路徑
3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
追加zip/jar資源或者類(.class文件)存放目錄路徑
4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
預先載入zip/jar資源或者類(.class文件)存放目錄路徑
5、-Xnoclassgc disable class garbage collection
關閉類垃圾回收功能
6、-Xincgc enable incremental garbage collection
開啟類的垃圾回收功能
7、-Xloggc:<file> log GC status to a file with time stamps
記錄垃圾回日誌到一個文件。
8、-Xbatch disable background compilation
關閉後台編譯
9、-Xms<size> set initial Java heap size
設置JVM初始化堆內存大小
10、-Xmx<size> set maximum Java heap size
設置JVM最大的堆內存大小
11、-Xss<size> set java thread stack size
設置JVM棧內存大小
12、-Xprof output cpu profiling data
輸入CPU概要表數據
13、-Xfuture enable strictest checks, anticipating future default
執行嚴格的代碼檢查,預測可能出現的情況
14、-Xrs rece use of OS signals by Java/VM (see
documentation)
通過JVM還原操作系統信號
15、-Xcheck:jni perform additional checks for JNI functions
對JNI函數執行檢查
16、-Xshare:off do not attempt to use shared class data
盡可能不去使用共享類的數據
17、-Xshare:auto use shared class data if possible (default)
盡可能的使用共享類的數據
18、-Xshare:on require using shared class data, otherwise fail.
盡可能的使用共享類的數據,否則運行失敗
The -X options are non-standard and subject to change without notice.