Ⅰ 怎樣把一個java源代碼做成一個軟體成品
其實就是用一個外部程序 調用java虛擬機運行你的java程序。
可以做一個批處理文件,在裡面調用java 虛擬機運行你的java程序。
也可以用某種編程語言,像vb ,c 或c++編個程序,生成exe,能調用java虛擬機運行你的程序,很簡單的。
【源代碼】
源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
Ⅱ Java進階之 怎麼自動生成代碼
myeclipse沒有直接的快捷鍵自動生成構造方法,可以有快捷鍵彈出source,接著點擊自動生成構造方法的菜單。
具體操作如下:工具里快捷鍵alt+shift+s
就彈出來Generate
Constructor
using
Fields
Ⅲ Java動態生成代碼
可以的,我說說大概思路,很簡單,你自己具體實現吧,把代碼寫給你沒意義的:
1.將你這段字元串輸出到一個文件里,用Java類文件的方式命名。
2.調用外部javac命令將該文件編譯。
3.用類載入器(ClassLoad)動態載入新的class文件並用Class.forName()注冊該類,然後就可以正常使用了。
上面的每一步都能在中找到實現方法,自己發揮吧。
Ⅳ java代碼生成器怎麼用
zip包,然後自動下載下來
1.預先定義好模板
最後放出源代碼:
package com.et.controller.system.createcode;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.et.controller.base.BaseController;
import com.et.util.DelAllFile;
import com.et.util.FileDownload;
import com.et.util.FileZip;
import com.et.util.Freemarker;
import com.et.util.PageData;
import com.et.util.PathUtil;
/**
* 類名稱:FreemarkerController
* 創建人:Harries
* 創建時間:2015年1月12日
* @version
*/
@Controller
@RequestMapping(value=」/createCode」)
public class CreateCodeController extends BaseController {
/**
* 生成代碼
*/
@RequestMapping(value=」/proCode」)
public void proCode(HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
/* ============================================================================================= */
String packageName = pd.getString(「packageName」); //包名 ========1
String objectName = pd.getString(「objectName」); //類名 ========2
String tabletop = pd.getString(「tabletop」); //表前綴 ========3
tabletop = null == tabletop?」」:tabletop.toUpperCase(); //表前綴轉大寫
String zindext = pd.getString(「zindex」); //屬性總數
int zindex = 0;
if(null != zindext && !」」.equals(zindext)){
zindex = Integer.parseInt(zindext);
}
List<String[]> fieldList = new ArrayList<String[]>(); //屬性集合 ========4
for(int i=0; i< zindex; i++){
fieldList.add(pd.getString(「field」+i).split(「,fh,」)); //屬性放到集合裡面
}
Map<String,Object> root = new HashMap<String,Object>(); //創建數據模型
root.put(「fieldList」, fieldList);
root.put(「packageName」, packageName); //包名
root.put(「objectName」, objectName); //類名
root.put(「objectNameLower」, objectName.toLowerCase()); //類名(全小寫)
root.put(「objectNameUpper」, objectName.toUpperCase()); //類名(全大寫)
root.put(「tabletop」, tabletop); //表前綴
root.put(「nowDate」, new Date()); //當前日期
DelAllFile.delFolder(PathUtil.getClasspath()+」admin/ftl」); //生成代碼前,先清空之前生成的代碼
/* ============================================================================================= */
String filePath = 「admin/ftl/code/」; //存放路徑
String ftlPath = 「createCode」; //ftl路徑
/*生成controller*/
Freemarker.printFile(「controllerTemplate.ftl」, root, 「controller/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Controller.java」, filePath, ftlPath);
/*生成service*/
Freemarker.printFile(「serviceTemplate.ftl」, root, 「service/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Service.java」, filePath, ftlPath);
/*生成mybatis xml*/
Freemarker.printFile(「mapperMysqlTemplate.ftl」, root, 「mybatis_mysql/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);
Freemarker.printFile(「mapperOracleTemplate.ftl」, root, 「mybatis_oracle/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);
/*生成SQL腳本*/
Freemarker.printFile(「mysql_SQL_Template.ftl」, root, 「mysql資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);
Freemarker.printFile(「oracle_SQL_Template.ftl」, root, 「oracle資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);
/*生成jsp頁面*/
Freemarker.printFile(「jsp_list_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_list.jsp」, filePath, ftlPath);
Freemarker.printFile(「jsp_edit_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_edit.jsp」, filePath, ftlPath);
/*生成說明文檔*/
Freemarker.printFile(「docTemplate.ftl」, root, 「說明.doc」, filePath, ftlPath);
//this.print(「oracle_SQL_Template.ftl」, root); 控制台列印
/*生成的全部代碼壓縮成zip文件*/
FileZip.zip(PathUtil.getClasspath()+」admin/ftl/code」, PathUtil.getClasspath()+」admin/ftl/code.zip」);
/*下載代碼*/
FileDownload.fileDownload(response, PathUtil.getClasspath()+」admin/ftl/code.zip」, 「code.zip」);
}
}
Ⅳ 怎樣用java代碼動態生成資料庫表
這個就要藉助hibernate tools跟xdoclet來完成了;
首先你要在你的java代碼里應用xdoclet標簽,例如
Java code
private String name;
/**
* @hibernate.property column = "name" length = "50"
*/
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
其中,寫到javadoc上的@hibernate.property column = "name" length = "50"
就是xdoclet標簽,它需要xdoclet程序來處理,這里就需要用到hibernate tools。
具體做的話一般情況是建一個ant腳本來完成,例如:
XML code
<target name="hibernate-xdoclet" depends="init, init-xdoclet_hibernate"
description="Generate mapping documents">
<echo>+---------------------------------------------------+</echo>
<echo>| |</echo>
<echo>| R U N N I N G H I B E R N A T E D O C L E T |</echo>
<echo>| |</echo>
<echo>+---------------------------------------------------+</echo>
<delete>
<fileset dir="$" includes="hibernate.cfg.xml" />
</delete>
<echo message="hibernate.cfg.xml at $"></echo>
<sleep seconds="1"/>
<hibernatedoclet
destdir="$"
excludedtags="@version,@author,@todo,@see"
addedtags="@xdoclet-generated at $,@right The XDoclet Team,@author XDoclet,@version $"
force="false"
verbose="true">
<fileset dir="$">
<include name="com/**/model/**/*.java"/>
</fileset>
<hibernatecfg
version="3.0"
destDir="$"
dialect="org.hibernate.dialect.Oracle9Dialect"
driver="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:@localhost:1521:RESDL"
userName="test"
password="123"
showSql="true"
schema="true"
validateXML="true"
/>
<hibernate version="3.0"/>
</hibernatedoclet>
</target>
上面的代碼是生成hbm跟cfg文件的,下面再介紹如何從java類到資料庫:
XML code
<target name="hibernate-schema" depends="init, init-hibernate-schema"
description="Generate DB schema from the O/R mapping files">
<echo>+---------------------------------------------------+</echo>
<echo>| |</echo>
<echo>| R U N N I N G D B S C H E M A |</echo>
<echo>| |</echo>
<echo>+---------------------------------------------------+</echo>
<echo message="mysql.sql at etc/hbm2doc"></echo>
<sleep seconds="1"/>
<hibernatetool destdir="etc/hbm2doc">
<configuration propertyFile="$/hibernate.properties">
<fileset dir="$">
<include name="com/**/model/**/*.hbm.xml"/>
</fileset>
</configuration>
<hbm2ddl drop="true"
outputfilename="mysql.sql"/>
<hbm2doc/>
</hibernatetool>
</target>
當然ant工程里的一些初始化需要自己定義,我這里只摘錄關鍵部分,具體的東西請查閱相關文檔,hibernate tutorail里就有個例子
Ⅵ java代碼生成器是什麼
代碼生成器就是根據特定的要求制定格式,靈活輸出在項目中重復要用到的代碼,節省項目時間,現在免費的代碼生成器codesmith我經常用的,小玩意,不花錢
Ⅶ JAVA如何生成可執行程序
創建可執行的 JAR 文件包
製作一個可執行的 JAR 文件包來發布你的程序是 JAR 文件包最典型的用法。
Java 程序是由若干個 .class 文件組成的。這些 .class 文件必須根據它們所屬的包不同而分級分目錄存放;運
行前需要把所有用到的包的根目錄指定給 CLASSPATH 環境變數或者 java 命令的 -cp 參數;運行時還要到控制台下
去使用 java 命令來運行,如果需要直接雙擊運行必須寫 Windows 的批處理文件 (.bat) 或者 Linux 的 Shell 程序。
因此,許多人說,Java 是一種方便開發者苦了用戶的程序設計語言。
其實不然,如果開發者能夠製作一個可執行的 JAR 文件包交給用戶,那麼用戶使用起來就方便了。在 Windows 下
安裝 JRE (Java Runtime Environment) 的時候,安裝文件會將 .jar 文件映射給 javaw.exe 打開。那麼,對於一個
可執行的 JAR 文件包,用戶只需要雙擊它就可以運行程序了,和閱讀 .chm 文檔一樣方便 (.chm 文檔默認是由
hh.exe 打開的)。那麼,現在的關鍵,就是如何來創建這個可執行的 JAR 文件包。
創建可執行的 JAR 文件包,需要使用帶 cvfm 參數的 jar 命令,同樣以上述 test 目錄為例,命令如下:
jar cvfm test.jar manifest.mf test
這里 test.jar 和 manifest.mf 兩個文件,分別是對應的參數 f 和 m,其重頭戲在 manifest.mf。因為要創建可
執行的 JAR 文件包,光靠指定一個 manifest.mf 文件是不夠的,因為 MANIFEST 是 JAR 文件包的特徵,可執行的
JAR 文件包和不可執行的 JAR 文件包都包含 MANIFEST。關鍵在於可執行 JAR 文件包的 MANIFEST,其內容包含了
Main-Class 一項。這在 MANIFEST 中書寫格式如下:
Main-Class: 可執行主類全名(包含包名)
例如,假設上例中的 Test.class 是屬於 test 包的,而且是可執行的類
(定義了 public static void main(String[]) 方法),那麼這個 manifest.mf 可以編輯如下:
Main-Class: test.Test <回車>
這個 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且該
行以一個回車符結束即可。創建了 manifest.mf 文件之後,我們的目錄結構變為:
==
|-- test
| `-- Test.class
`-- manifest.mf
這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來創建 JAR 文件包。也就是在目錄樹中使用「==」表
示的那個目錄中,使用如下命令:
jar cvfm test.jar manifest.mf test
之後在「==」目錄中創建了 test.jar,這個 test.jar 就是執行的 JAR 文件包。運行時只需要使用
java -jar test.jar 命令即可。
需要注意的是,創建的 JAR 文件包中需要包含完整的、與 Java 程序的包結構對應的目錄結構,就像上例一樣。
而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包
之前可以使用 java <類名> 來運行這個類,即在上例中 java test.Test 是可以正確運行的 (當然要在 CLASSPATH
正確的情況下)。
(忘記從哪兒下的了!!可能不太全!!)
Ⅷ java代碼生成器能生成c語言代碼嗎用什麼方法能實現呢
按照我的理解,不能,我也學習過java,沒聽過這個功能。高級語言最終都要編譯成機器語言,也就是01串,為什麼會有這么多的計算機語音,就是因為各自在各自的領域比較方便。實現同一個功能,不管什麼語言都是可以的,只是難易程度的問題,因為任何語言都會有順序、選擇、循環這三種結構,如果可以的話,除非有一種這樣的程序,可以把java編譯的程序,也就是機器碼反編譯為C,這個我至今也沒聽說過,也不知道有什麼用。就我的理解來說,反編譯是非常難的一件事,而且是反編譯為原來的語言,比如微軟Windows源代碼,絕對的商業機密,應該有很多人嘗試過,你能拿到Windows的光碟(算是機器碼吧),但是你並不能提供Windows的源代碼,如果有人能提供的話,微軟就會倒閉,反編譯為其他語言,估計更是難上加難。
Ⅸ 求簡單易用的java代碼生成器,可以三層架構模式生成代碼或其他模式生成(如:簡單工廠)和一些簡單方法。
你別告訴我,你要的是可以幫你寫代碼的軟體?
這個軟體不可能有的,就算可以做程序員也不會做,砸自己飯碗么
Ⅹ java代碼生成器
今年暑假准備寫個,要不要一起討論下啊