J#是什么?
初学者请问 什么是 J# 哪位前辈能具体介绍一下 在此多谢了! --------------------编程问答-------------------- 初学的话不要去管J#,估计是为了让Java程序员更容易转到.net而弄出来
Microsoft Visual J# 使开发人员能够使用 Java 语言语法在 .NET Framework 上构建应用程序和服务。
注意:
Visual J# 已从 Visual Studio 2008 中移除。
--------------------编程问答-------------------- Visual J# 是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务。
Visual J# 面向公共语言运行库,并可以用于在充分利用 .NET Framework 的同时开发 .NET 应用程序,包括 XML Web services 和 Web 应用程序。 --------------------编程问答-------------------- J# 是你可以在.net框架下通过java的语法来构建应用程序,个人觉得这是微软的一项策略,来吸引java程序员转投.net阵营,你初学的话,建议使用c#,这是.net下开发最适合的语言 --------------------编程问答-------------------- ··············· --------------------编程问答--------------------
UP --------------------编程问答-------------------- 为什么要发两个一样的帖子呢 --------------------编程问答-------------------- .net vs 主要还是C#的开发工具,其他几种语言也支持 如VB,JAVA,C++,等
支持VB 叫VB.NET ,支持JAVA 的是 J# .NET,支持C++的是C++.NET/.
.NET 是一个开发平台,无论是C#,J#,VB.NET等 都只是这个平台上的工具,如果你熟悉 VS ,那就不能理解这个关系.
说白了 J# 是为那些JAVA 程序开发一款可以在 VS.NET 上开发的语言,但他只含有JAVA 的一部分,是个鸡肋.
如果没必要就不要学习这个,都不如 学JAVA 或C # . --------------------编程问答-------------------- 走错门了
去学C#
J#是个太监 --------------------编程问答-------------------- --------------------编程问答-------------------- 8楼说的有点意思 --------------------编程问答-------------------- 8楼的比喻 非常贴切 哈哈 --------------------编程问答-------------------- J#概述
Visual J# 是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务。
Visual J# 面向公共语言运行库,并可以用于在充分利用 .NET Framework 的同时开发 .NET 应用程序,包括 XML Web services 和 Web 应用程序。Visual J# 应用程序从下列功能中获益:
跨语言集成
增强的安全性
版本控制和部署支持
调试和分析服务
J#和java有什么区别?
java是一种跨平台,跨操作系统的编程开发语言,基本都是靠底层JDK功劳,JDK也有很多厂家,有主流的SUN公司标准,也有IBM标准还有很多标准,JDK有不同的操作系统版本,比如在windows下按一个win版本的JDK开发出来的java项目,拿到一个安有linux版本的linux操作系统中,正常使用,这主要是jdk的功劳。
再说说j#,它是微软开发的一套java平台,之前叫做VJ(和VB,VC一样),由于版权和利益的纠纷,结果微软被判停止开发java,由于微软的一代开发平台.net的问世,很多语言都集成入内,VJ虽然已经停止了升级和开发,但是也有少量的用户,所以j#是.net平台下的java语言规范。
Visual J# 中默认的源文件扩展名是 .jsl。Visual J# 包含以下内容:
将 Java 语言源编译为 Microsoft® 中间语言 (MSIL) 的 Visual J# 编译器。
将 Java 语言字节码转换为 MSIL 的二进制转换器。
独立开发的类库旨在提供一些功能,该功能与大多数 JDK 1.1.4 级类库的功能等效,也等效于大学理事会的计算机科学高级能力分班课程中指定的 JDK 1.2 java.util 软件包的许多类的功能
与 Windows® 基础类 (WFC) 和许多 com.ms.* 软件包兼容。
Visual J# 编译器只能在 Visual Studio 2005 中创建 32 位的应用程序。在 64 位的 Windows 操作系统上运行时,使用 Microsoft Visual J# 2005 编译的应用程序将会在 WOW64 (Windows on Windows64) 下运行。
但是 Visual J#:
不能将 Java 语言源代码编译成 Java 语言字节码格式,即 .class 文件。
不支持创建在 Java 虚拟机上运行的应用程序的能力。
不支持 Java 本机接口 (JNI)、原始本机接口 (RNI) 和远程方法调用 (RMI)。
Microsoft Visual J# 2005 不用于开发打算运行于 Java 虚拟机上的应用程序。使用 Visual J# 生成的应用程序和服务将只能在 .NET Framework 上运行。Visual J# 是由 Microsoft 独立开发的。它未经 Sun Microsystems, Inc. 认可或批准。
转自百度百科 --------------------编程问答-------------------- java和c#生的儿子叫J# --------------------编程问答-------------------- --------------------编程问答--------------------
有意思有意思~~哈哈 --------------------编程问答--------------------
哈哈 --------------------编程问答-------------------- 他们的儿子没有小jj --------------------编程问答-------------------- J#是微软恶心JAVA的 --------------------编程问答-------------------- 8楼说的是实话 --------------------编程问答-------------------- 原来是这样
--------------------编程问答-------------------- --------------------编程问答-------------------- 3楼的说法,我支持! --------------------编程问答--------------------
有见地! --------------------编程问答-------------------- java是一种跨平台,跨操作系统的编成开发语言,基本都是靠底层JDK功劳,JDK也有很多厂家,有主流的SUN公司标准,也有IBM标准还有很多标准,JDK有不同的操作系统版本,比如在windows下按一个win版本的JDK开发出来的java项目,拿到一个安有linux版本的linux操作系统中,正常使用,这主要是jdk的功劳。
在说说j#,它是微软开发的一套java平台,之前叫做VJ(和VB,VC一样),由于版权和利益的纠纷,结果微软被判停止开发java,由于微软的一代开发平台.net的问世,很多语言都集成入内,VJ虽然已经停止了升级和开发,但是也有少量的用户,所以j#是.net平台下的java语言规范。 --------------------编程问答-------------------- ......................... --------------------编程问答-------------------- 顶 8 楼!!!!!!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 有意思有意思 --------------------编程问答--------------------
呵呵 up --------------------编程问答-------------------- J# 微软还很牛B --------------------编程问答-------------------- 我围观。。。。。。。。 --------------------编程问答-------------------- 竞选时态 --------------------编程问答-------------------- nkolljljljljljljlkjlkjoijij --------------------编程问答-------------------- 这个问题已经被讨论无数遍了 --------------------编程问答-------------------- 都好搞... --------------------编程问答-------------------- 走过,路过 --------------------编程问答-------------------- J#概述
Visual J# 是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务。
Visual J# 面向公共语言运行库,并可以用于在充分利用 .NET Framework 的同时开发 .NET 应用程序,包括 XML Web services 和 Web 应用程序。Visual J# 应用程序从下列功能中获益: 跨语言集成 增强的安全性 版本控制和部署支持 调试和分析服务
编辑本段J#和java有什么区别?
java是一种跨平台,跨操作系统的编程开发语言,基本都是靠底层JDK功劳,JDK也有很多厂家,有主流的SUN公司标准,也有IBM标准还有很多标准,JDK有不同的操作系统版本,比如在windows下安装一个win版本的JDK开发出来的java项目,拿到一个安装有linux版本的linux操作系统中,正常使用,这主要是jdk的功劳。 再说说j#,它是微软开发的一套java平台,之前叫做VJ(和VB,VC一样),由于版权和利益的纠纷,结果微软被判停止开发java,由于微软的新一代开发平台.net的问世,很多语言都集成入内,VJ虽然已经停止了升级和开发,但是也有少量的用户,所以j#是.net平台下的java语言规范。
编辑本段Visual J#包含的内容
Visual J# 中默认的源文件扩展名是 .jsl。Visual J# 包含以下内容: 将 Java 语言源编译为 Microsoft® 中间语言 (MSIL) 的 Visual J# 编译器。 将 Java 语言字节码转换为 MSIL 的二进制转换器。 独立开发的类库旨在提供一些功能,该功能与大多数 JDK 1.1.4 级类库的功能等效,也等效于大学理事会的计算机科学高级能力分班课程中指定的 JDK 1.2 java.util 软件包的许多类的功能 与 Windows® 基础类 (WFC) 和许多 com.ms.* 软件包兼容。 Visual J# 编译器只能在 Visual Studio 2005 中创建 32 位的应用程序。在 64 位的 Windows 操作系统上运行时,使用 Microsoft Visual J# 2005 编译的应用程序将会在 WOW64 (Windows on Windows64) 下运行。 但是 Visual J#: 不能将 Java 语言源代码编译成 Java 语言字节码格式,即 .class 文件。 不支持创建在 Java 虚拟机上运行的应用程序的能力。 不支持 Java 本机接口 (JNI)、原始本机接口 (RNI) 和远程方法调用 (RMI)。 Microsoft Visual J# 2005 不用于开发打算运行于 Java 虚拟机上的应用程序。使用 Visual J# 生成的应用程序和服务将只能在 .NET Framework 上运行。Visual J# 是由 Microsoft 独立开发的。它未经 Sun Microsystems, Inc. 认可或批准。 --------------------编程问答-------------------- 我是来拿积分的 --------------------编程问答-------------------- 原来如此 --------------------编程问答-------------------- 原来如此 哈哈哈
--------------------编程问答-------------------- 学习了,原来如此 --------------------编程问答-------------------- 重发加载电子标签数据
VOID ResendFruLoadData(UCHAR ucChanNum, UCHAR ucTcbPos)
UCHAR ucLoadState = y7;y9;
PCCU_CHAN_T pstChan = y8;PRS485_BOARD_T pstNode = y8;
ulResId = y1.ulResourceId;j4;
if (y8 == pstNode) { DBG_DOWNLOAD;return;}
ucLoadState = y1.ucLoadState;
//重发if (LABEL_LOAD_SEND == ucLoadState){DBG_DOWNLOAD;
(VOID)ResendLabelLoadCmd(ucTcbPos, ucChanNum, pstNode);}return;
重发加载数据
VOID ResendLoadData(UCHAR ucChanNum, UCHAR ucTcbPos)
CCU_LOAD_TYPE_ENUM enLoadType = CCU_LOAD_BOARD_INVALID;
enLoadType = y1.enLoadType;
y1.ucTimeCnt = 0;y1.ucRepeatTime--;switch (enLoadType)
{case CCU_LOAD_APP :ResendAppData(ucChanNum, ucTcbPos);break;
case CCU_LOAD_ELABEL :case CCU_LOAD_CABINET_FRUINFO :
ResendFruLoadData(ucChanNum, ucTcbPos);break;
default: DBG_DOWNLOAD;break;}return;
加载超时处理
VOID RptLoadDownTimeOut(UCHAR ucChanNum, UCHAR ucTcbPos)
y9;CCU_LOAD_TYPE_ENUM enType = CCU_LOAD_BOARD_INVALID;
ulResId = y1.ulResourceId;enType = y1.enLoadType;
ReportLoadSchedToPdt(ulResId, enType, CCU_ERR_MPI_TIMEOUT);
/* 清理加载的数据 */ CCU485ClearLoadData(ucChanNum, ucTcbPos);return;
处理加载超时
VOID ProcLoadDownTimeOut(UCHAR ucChanNum, UCHAR ucTcbPos)
if (y1.ucRepeatTime > 0){//重发ResendLoadData(ucChanNum, ucTcbPos);}else{
RptLoadDownTimeOut(ucChanNum, ucTcbPos); }return;
定时轮询加载表
VOID CycLoadDownTcb()
UINT32 i = 0; UINT32 j = 0;
for ( i = 0 ; i < MAX_CCU_CHAN_NUM; i++ )
{for ( j = 0 ; j < MAX_NODE_NUM ; j++ ){
if (CCU_TRUE == y3.ucUseFlg){if ( y7 != y3.ucWaitTime){
y3.ucTimeCnt++;if (y3.ucTimeCnt >= y3.ucWaitTime){
ProcLoadDownTimeOut((UCHAR)i, (UCHAR)j);}}}}}return;
定时轮询获取电子标签控制表
VOID CycGetFruTcb()
UINT32 i = 0;UINT32 j = 0;y9;LABEL_TYPE enLabel_Type;
for ( i = 0 ; i < MAX_CCU_CHAN_NUM; i++ ){
for ( j = 0 ; j < GET_FRU_TAB_SIZE ; j++ ){
if (CCU_TRUE == y4.ucUseFlg){if ( y7 != y4.ucWaitTime)
{y4.ucTimeCnt++;if (y4.ucTimeCnt >= y4.ucWaitTime)
{ulResId = y4.ulResId;enLabel_Type = y4.enLabel_Type;j2;
{ReportGetFileSchedToPdt(ulResId, enLabel_Type, CCU_ERR_MPI_TIMEOUT);}
CCU485ClearGetFruTab((UCHAR)i, (UINT16)j); } } }}}return;
处理内部FRU命令
UINT32 Proc485InterFruCmd(PDOWN_485_FRAME pSt485Msg, UCHAR *pucIsProcess)
UINT32 ulRet = CCU_ERR;PRS485_BOARD_T pNode = y8;PCCU_CHAN_T pChan = y8;
UCHAR cmd_buffer[MAX_485_DATA_LEN] = {0};
UCHAR ucChanNum = y7;LABEL_TYPE enLabel_Type;
CHECK;ucChanNum = Get485ChanNo(pSt485Msg->ulResId);
if ( ucChanNum >= MAX_CCU_CHAN_NUM ){return CCU_ERR_MPI_INVALID_PARAMS;}
enLabel_Type = g_ast485GetFruTab[ucChanNum].astFruUint[pSt485Msg->uwSeq].enLabel_Type;
switch(pSt485Msg->ucCmd){case SMS_485_GET_FRU_CMD:
ulRet = ProcRs485GetFruMsg(pSt485Msg);
if (CCU_OK != ulRet){j2{ConvRetToRet(ulRet);
ReportGetFileSchedToPdt(pSt485Msg->ulResId, enLabel_Type, ulRet);}j1;j5;
if (CCU_ERR_MPI_LOAD_TASK_UNFINISHED != ulRet){j3;} }return ulRet;
case SMS_485_GET_FRU_EXC_CMD:
ulRet = Rs485GetFruInfoExc(pSt485Msg);
if (CCU_OK != ulRet){j2{ConvRetToRet(ulRet);
ReportGetFileSchedToPdt(pSt485Msg->ulResId, enLabel_Type, ulRet);
}j1;j5;j3;}return ulRet;default: break;}return CCU_OK;
--------------------编程问答-------------------- g_ast485DownLoadTab[ucChanNum].astDataUint[ucTcbPos] y1
g_ast485DownLoadTab[ucChanIndex].astDataUint[uwIndex] y2
g_ast485DownLoadTab[i].astDataUint[j] y3 ulCurBlk y6
g_ast485GetFruTab[i].astFruUint[j] y4 ulTotalBlk y5
CCU_NULL_BYTE y7 CCU_NULL_PTR y8 UINT32 ulResId = CCU_NULL_LONG y9
PutResultToFruTxTab(ulRet, pSt485Msg, 0, cmd_buffer) j1
if (BOARD_LOG_TYPE == enLabel_Type) j2
pNode->enBoardState = CCU_NODE_STATE_RUNNING j3
(VOID)GetChanNode(ulResId, &pstChan, &pstNode) j4
(VOID)GetChanNode(pSt485Msg->ulResId, &pChan, &pNode);
CHECK_PARA1_NULL_RN(pNode, CCU_ERR_MPI_INVALID_PARAMS); j5
重发加载APP软件的数据
UINT32 Resend485AppLoadSegment(UINT16 ucTcbPos, UCHAR ucChanNum, PRS485_BOARD_T pstNode)
{
UINT32 ulRet = CCU_NULL_LONG;
UINT32 y6 = 0;
UINT32 y5 = 0;
UINT32 ulDeltaBlk = 0;
UCHAR i = 0;
UINT32 ulBakBlk = 0;
CHECK;
DBG_DOWNLOAD;
y6 = y1.y6;y5 = y1.y5;if ( y5 < y6)
{DBG_DOWNLOAD;return CCU_ERR;}
ulDeltaBlk = ((y5 > y6 + WINDOW_WIDTH) ? WINDOW_WIDTH : (y5 - y6));
/* 因为是重发所以需要 */
ulBakBlk = y1.y6;
y1.y6 = y6 - ulDeltaBlk;
y6 = y1.y6;
/* 一次下发10帧的数据 */
for ( i = 0 ; (i < WINDOW_WIDTH) && (i < (y5 - y6)); i++)
{ADA_Sleep(100);
ulRet = CCU485LoadSegmentSend(ucTcbPos,ucChanNum,pstNode);
if ( CCU_OK != ulRet ){y1.y6 = ulBakBlk;
ConvRetToRet(ulRet);DBG_DOWNLOAD;return ulRet;}}return CCU_OK;
重复加载数据
VOID ResendAppData(UCHAR ucChanNum, UCHAR ucTcbPos)
UCHAR ucLoadState = y7;
y9;
PCCU_CHAN_T pstChan = y8;
PRS485_BOARD_T pstNode = y8;
ulResId = y1.ulResourceId;
j4;if (y8 == pstNode){DBG_DOWNLOAD;return;}
ucLoadState = y1.ucLoadState;
if (LOAD_SEGMENT_SEND == ucLoadState) {
(VOID)Resend485AppLoadSegment(ucTcbPos, ucChanNum, pstNode);}return;
重发电子标签数据
UINT32 ResendLabelLoadCmd(UINT16 uwIndex, UCHAR ucChanIndex, PRS485_BOARD_T pstNode)
UINT32 ulRet = CCU_ERR;UINT16 uwLen = 0;
UINT32 y6 = 0;UINT32 y5 = 0;CHECK;DBG_DOWNLOAD;
if (y2.y6 < 1 ){DBG_DOWNLOAD;return CCU_ERR;}
y2.y6 -= 1;y6 = y2.y6;y5 = y2.y5;if (y6 == y5 - 1){
uwLen = (UINT16)(y2.ulMainBufLen - (y6 * ELECLABEL_FRAME_LEN));
} else{uwLen = ELECLABEL_FRAME_LEN; }
y2.uwFruAddr -= uwLen;
ADA_Sleep(100);
ulRet = LabelLoadCmdSend(uwIndex, ucChanIndex, pstNode);
if (CCU_OK != ulRet){ConvRetToRet(ulRet);
DBG_DOWNLOAD;return ulRet;}return CCU_OK; --------------------编程问答-------------------- 学习 新手~~~
补充:.NET技术 , 其他语言