按照以下的步驟修改sublime text 2的編譯系統腳本。
在選項卡Preferences > Browse Packages.. 打開sublime的包目錄
轉到Java Folder
打開 JavaC.sublime-build 替換下面的命令行
"cmd": ["javac", "$file"],
在 Windows 下使用以下命令替換
"cmd": ["runJava.bat", "$file"],
在 Ubuntu 下使用以下命令替換
"cmd": ["runJava.sh", "$file_base_name"],
Step #4 – 現在寫個測試程序,使用CTRL+B 編譯運行。$("input[name*=textfield_@]")就可以了
Ⅱ 用shell腳本怎樣編譯java工程
用shell腳本怎樣編譯java工程
編譯java工程一般直接用IDE或者用Ant、Maven之類的工具,很少有人用純shell來編譯java工程。正好遇到這樣一個應該,用這篇博文做一下記錄。
案例:用eclipse寫了一個java project,然後編譯打成jar包。
這個可以採用eclipse自帶的Export就可以導出jar了。但是為了軟體自動化等巴拉巴拉的原因,採用存shell腳本編譯。
就是制定了運行的main-class(有public static void main(String args[])的類)。
將這個文件拷貝到iec104的根目錄下,然後執行腳本compile.sh,內容如下:
#!/bin/bash
cur_dir=$(pwd)
echo $cur_dir
function do_compile_iec104(){
# echo $cur_dir
iec104=$cur_dir/iec104
iec104_src=$cur_dir/iec104/src
iec104_bin=$cur_dir/iec104/bin
# echo $iec104_src
# echo $iec104_bin
iec104_class=$cur_dir/iec104/class
# 將iec104的src目錄下的所有java文件的名稱存入到iec104/src/sources.list文件中
rm -rf $iec104_src/sources.list
find $iec104_src -name "*.java" > $iec104_src/sources.list
cat $iec104_src/sources.list
# $iec104_class是存放編譯的class文件的目錄
rm -rf $iec104_class
mkdir $iec104_class
# 這里開始編譯java文件,注意這里的-encoding utf-8,剛開始並沒有加入這個,然後就報了一堆錯誤,糾結了很久才發現,這里給各位提個醒了。
javac -d $iec104_class -encoding utf-8 -classpath $iec104_bin/classes12.jar:$iec104_bin/junit-4.10.jar:$iec104_bin/log4j-1.2.17.jar:$iec104_bin/mysql-connector-java-5.0.5-bin.jar:$iec104_bin/RXTXcomm.jar -g -sourcepath $iec104_src @$iec104_src/sources.list
# 由於用到了log4j,所以要將log4j的配置文件一並放入,如果沒有用到,可以忽略這句
cp $iec104_src/log4j.properties $iec104_class
# 如果原來在iec104目錄下有jar報就刪除掉,因為要生成新的
rm $iec104/iec104.jar
# 這里要cd到存放class的目錄,否則如果採用絕對路徑編譯,編譯出來的jar包裡面就是絕對路徑了,這樣就會有問題
# jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF $iec104_class/*這樣是錯誤的
cd $iec104_class
jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF *
# 賦予可執行許可權
sudo chmod a+x $iec104/iec104.jar
}
do_compile_iec104
exit 0
運行這個腳本(linux下)就可以編譯並且在iec104的目錄下就可以看到iec104.jar文件了。
這里補充下java命令的基本知識:
javac 用於編譯Java文件,格式為:
java [options] [sourcefiles] [@files]
其中:
options:命令行選項;
sourcefiles:一個或多個要編譯的源文件;
@files:一個或多個對源文件進行列表的文件,有時候要編譯的文件很多,一個個敲命令會顯得很長,也不方便修改,可以把要編譯的源文件列在文件中,在文件名前加@,這樣就可以對多個文件進行編譯,對編譯一個工程很有用,方便,省事。
有幾個比較重要的選項:
-d 用於指定編譯成的class文件的存放位置,預設情況下不指定class文件的存放目錄,編譯的class文件將和源文件在同一目錄下;
-classpath 可以簡寫成-cp,用於搜索編譯所需的class文件,指出編譯所用到的class文件的位置,如jar、zip或者其他包含class文件的目錄,指定該選項會覆蓋CLASSPATH的設定;
-sourcepath用於搜索編譯所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目錄;
需要注意windows下和linux下文件路徑分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的區別:
windows下文件路徑分隔符用 ,文件列表分隔符用分號 ;
linux下文件路徑分隔符用 / ,文件列表分隔符用冒號 :
Ⅲ javac 編譯,如何引用定義在其他文件夾的包
問題是由於你沒有編譯包路徑,導致在使用類的時候找不到,請按如下方法進行編譯並運行。第一步,編譯DataForm.java
javac -d .\ DataForm.java
-d 這個參數會在 DataForm.java 文件所在路徑下生成 data 文件夾,裡面有一個文件 DataForm.clsaa 第二步,編譯Service.java
javac -d .\ Service.java第三步,執行Service
java -cp .\ Service注意:
由於不知道你的 Service.java 是否有 package 目錄,如果有將 package目錄加到類鳴的前面。
如:
Service.java 中 package 路徑如下:
package service;
執行腳本將變為:
java -cp .\ service.Service有問題請給我留言
Ⅳ Javac 編譯java腳本出錯的問題
類型不一致無法進行比較;
使用正規編輯器,eclipse進行編譯,解析,防止沒必要的浪費時間
Ⅳ 請教大神Linux下編寫shell腳本,利用javac如何編譯完整的java工程
#!/bin/sh# Define some constants
ONSSERVER=ONSServer
PROJECT_PATH=/root/iot-oid
JAR_PATH=$PROJECT_PATH/lib
BIN_PATH=$PROJECT_PATH/bin
SRC_PATH=$PROJECT_PATH/src/$ONSSERVER
# First remove the sources.list file if it exists and then create the sources file of the project
rm -f $SRC_PATH/sources
find $SRC_PATH/com -name *.java > $SRC_PATH/sources.list
# First remove the ONSServer directory if it exists and then create the bin directory of ONSServer
rm -rf $BIN_PATH/$ONSSERVER
mkdir $BIN_PATH/$ONSSERVER
# Compile the project
javac -d $BIN_PATH/$ONSSERVER -classpath $JAR_PATH/jdom.jar:$JAR_PATH/oro-2.0.8.jar @$SRC_PATH/sources.list
這個文件你可以保存好,然後 chmod +x ./shell 運行
javac -d YourDir -classpath xx.jar xxxx.java xx.java 這個命令的簡單的看就是 YourDir 你的生成文件的位置, -classpath 就是你引入的 jar 的路徑, xxx.java 就是源文件
javac 的用法:
用法: javac <options> <source files>
其中, 可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件和注釋處理程序的位置
-cp <路徑> 指定查找用戶類文件和注釋處理程序的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋所安裝擴展的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-proc:{none,only} 控制是否執行注釋處理和/或編譯。
-processor <class1>[,<class2>,<class3>...] 要運行的注釋處理程序的名稱; 繞過默認的搜索進程
-processorpath <路徑> 指定查找注釋處理程序的位置
-parameters 生成元數據以用於方法參數的反射
-d <目錄> 指定放置生成的類文件的位置
-s <目錄> 指定放置生成的源文件的位置
-h <目錄> 指定放置生成的本機標頭文件的位置
-implicit:{none,class} 指定是否為隱式引用文件生成類文件
-encoding <編碼> 指定源文件使用的字元編碼
-source <發行版> 提供與指定發行版的源兼容性
-target <發行版> 生成特定 VM 版本的類文件
-profile <配置文件> 請確保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 輸出標准選項的提要
-A關鍵字[=值] 傳遞給注釋處理程序的選項
-X 輸出非標准選項的提要
-J<標記> 直接將 <標記> 傳遞給運行時系統
-Werror 出現警告時終止編譯
@<文件名> 從文件讀取選項和文件名
Ⅵ 如何用javac 和java 編譯運行整個Java工程
1、將編譯好的比如Demo.java文件放到某個盤下(比如D盤)
2、進入控制台(window+R鍵---->輸入cmd)
以上完成整個在控制台運行java程序的流程。
Ⅶ 如何在linux終端裡面運行java
通常用命令、shell腳本,或者直接運行程序可執行的程序。像java的jar包可以用java -jar xxx.jar執行。eclipse也可以cd到eclipse解壓目錄,然後./eclipse執行eclipse這個程序。
可以看看shell腳本,和java相關的命令和工具(javac,javap,jvisualvm,jconsole等等)。
所有的軟體都有一個可執行腳本或者可執行程序。cd過去sh xxx.sh 或者./xxx.sh就可以在命令行執行。像tomcat也有startup.sh和shutdown.sh。你也可以看看,其實就是一個很復雜的shell腳本