本机取消打印怎么弄ld密切怎么弄

IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
Java 语言在服务器端和 applet 领域已经大行其道,但是对于最终用户应用程序,通常它不是主角。其实不一定会是这种情况。使用 Linux、用于 Java 的 GNU 编译器(GNU Compiler for Java)和标准窗口构件工具箱(Standard Widget Toolkit),您可以创建用 Java 语言编写的快速、本机 GUI 应用程序。(Windows 版本的也不远了。)经验丰富的 Java 开发人员 Kirk Vogen 说明了如何做到这一步。通过单击本文顶部或底部的
中将您对本文的想法与作者和其他读者一起分享。
, I/T 专家, IBM Global Services
Kirk Vogen 是一名富有编程激情的 Java 老手,尤其是在各种面向对象的变化方面。他于 1995 年毕业于 St. Olaf College,然后在 IBM Global Services 致力于使用 WebSphere 构建电子商务应用程序。可以通过
与他联系。
众所周知,Java 语言在服务器上以及 applet 领域已经非常成功了,但是它在最终用户应用程序领域为什么没有大行其道呢?有几个原因。首先,即使很小的应用程序的内存占用通常也有好几兆字节。第二,与 Java 语言一起提供的 GUI 库产生的应用程序通常看起来与其本机同类应用程序不同。因此,无论您的应用程序多么健壮或稳定,与本机应用程序相比,它都显得非常笨拙。用于 Java 的 GNU 编译器
让我们从内存占用问题开始。Java 应用程序要使用额外的内存,因为运行 Java 字节码时,虚拟机必须完成许多“工作”。在当今高级编译器中,编译即时(just-in-time)发生并且编译器必须对这一信息立即(on-the-fly)进行高速缓存以供以后使用。当然,现在内存是便宜,但是当有几个 Java 应用程序同时在一台机器上运行时,即使是大机器也可能由于持续的内存页面调度而放慢速度。进入用于 Java 的 GNU 编译器(GCJ)。GCJ 获得 Java 源代码或字节码,然后将它们编译成本机机器代码。然后,可以将来自几个 Java 类的机器代码链接在一起成为单个本机应用程序。一月份,Martyn Honeyford 为我们提供了本机编译和 GCJ 的简介(请参阅
以获取到 Martyn 文章的链接)。正如他通过示例向我们展示的那样,本机编译的应用程序使用的内存通常要比在虚拟机中运行的应用程序要少得多。
标准窗口构件工具箱
这很棒,但是正如 Martyn 指出的,GCJ 尚不支持 AWT 或 Swing。因此,我们现在将如何建立本机编译的 GUI 应用程序呢?进入标准窗口构件工具箱(SWT)。这一 API 是开放源码 Eclipse 工具平台的一部分。为了避免引起 Swing 与 SWT 的对抗(请参阅
以获取关于这场争论的更多详细信息),让我说明一些 SWT 的优势。
SWT 试图弥补 AWT 和 Swing 的缺点。使用 AWT,我们将受到“最小公分母”限制:仅支持存在于所有平台上的窗口构件。因为 Motif 没有提供本机树型窗口构件而 Windows 提供了该功能,AWT 就没有包含树型窗口构件。Swing 走向了另一个极端。虽然带有一个很出色的 API 进行优雅地设计,Swing 还是自己实现窗口构件。因此 Swing 不依赖于操作系统提供窗口构件。无论本机是否支持,这都为 Swing 提供了不可思议的灵活性。但是,因为 Swing 自己绘制这些窗口构件,所以最终的外观看起来与本机应用程序有明显的不同。SWT 试图弥合这两个 GUI 工具箱之间的差距。它的行军命令是:“如果有本机窗口构件就使用它。如果没有,就模拟它。”前面提到的树型窗口构件就是这样一个示例。因为 Windows 支持本机树型窗口构件,所以在 Windows 上运行时,SWT 就使用它。但是,Motif 不支持树型窗口构件,因此 SWT 在 Motif 下运行时绘制其自己的窗口构件版本。使用 SWT,结果应用程序看起来与其本机的同类应用程序很相似,因为尽可能地使用了本机窗口构件。设置开发环境
因此,如何在本机编译所有这些应用程序呢?首先,您需要一个使用 GCJ 设置的开发环境。目前,在 Linux 和其它 UNIX 变体(请参阅“Windows 上的 GCJ”侧栏以了解 GCJ 在 Windows 上的情况)上支持 GCJ。设置开发环境的最简便方法是安装一种 Linux 分发版的新近版本。Mandrake 8.1 和 Red Hat 7.2 都带有需另外安装的 GCJ 3.0.1。因为 GCJ 仍然在发展,所以可能想考虑使用最新和最好的版本。我选择在版本 3.0.3 和 3.0.4 上进行测试。手工安装 GCJ 相对容易;GCJ 页面提供了相当好的文档(请参阅
一旦有了一个具有 GCJ 的环境,则下载 Eclipse SDK 并安装它。这将为您提供 SWT 源代码和字节码。要安装 Eclipse SDK,请下载 ZIP 文件(在 Eclipse SDK 标题下),然后将它解压缩到一个目录中。我建议使用目录 /usr/local/eclipse,但是任何目录都可以。开始编译
设置开发环境后,就可以开始编译了。编译应用程序包括对大多数 SWT 源代码执行与下面类似的命令:gcj -c MyClass.java -o MyClass.o大约有 30 个 SWT 源文件使用 Java 本机接口(Java Native Interface (JNI)),因此我们需要以略微不同的方式来编译它们(请注意
-fjni 标记):
gcj -fjni -c MyJNIClass.java -o MyJNIClass.o最后,我们需要将结果对象编译成共享对象:gcj -shared -o swt.so MyClass.o MyJNIClass.o ...构建 SWT
在本文中,我们将把 SWT 编译成共享对象,然后在产生的应用程序中动态引用这个对象。请注意,您可以使用应用程序代码将 SWT 编译成可执行文件,但是基于本文所讨论的范围,我们将坚持编译成共享对象。正如它的名称所表明的,共享对象的主要优点就是可以被共享。在运行时所有应用程序都可以动态地使用同一个对象。产生的可执行文件大小将小得多。
使用下载源代码中包含的 Ant 构建文件(buildfile),我们将以自动方式编译 SWT。这个文件完成两个主要任务。首先,它将几个补丁程序应用到 SWT 源代码。(SWT 文件中有三个将不能用 GCJ 进行编译,这是因为一些小的编译器错误造成的 ― 例如,它不喜欢
int x, y, x1, y1 作为一行;必须将它们分成多行。在这些情况下,为这三个源文件编写了小的补丁程序以使它们在功能上等价。正如我以前提到的,GCJ 仍然在发展;这些错误会逐渐消除。)其次,构建文件使用提供的制作文件(makefile)来调用
在清单 1 中显示的 Ant 构建文件已经在 Ant 1.3 和 Ant 1.4.1 上测试过了。请注意,在清单中我除去了注释以节省空间,但是有完整的代码可供下载。
要运行构建,请遵循下列步骤:安装 Ant(请参阅
以获取关于 Ant 的更多信息)。
下载本文的
,它包含构建文件、补丁程序和关联的制作文件,然后将它解压缩到一个目录中。
导航至 SWT 目录,然后输入
ant 。构建文件假设您已经在 usr/local/eclipse 中安装了 Eclipse。如果 Eclipse 安装在另一个目录中,请输入
ant -Declipse_install_dir=your_directory ,其中
your_directory是您安装 Eclipse 的目录。
注:如果不想使用 Ant 构建文件,您可以手工解压缩 SWT 源文件和字节码,然后使用 UNIX
patch 命令来应用源代码中包含的那三个补丁程序(使用
文件)。然后,运行制作文件。
清单 1. Ant 构建文件&project name="BuildEclipse" default="cleanup"&
The following properties can be overridden at the command-line.
e.g. ant -Declipse_install_dir=/usr/local/eclipse
&property name="eclipse_install_dir" value="/usr/local/eclipse"/&
&property name="temp_dir" value="build_temp"/&
&property name="shared_object_name" value="swt.so"/&
&target name="init"&
&mkdir dir="${temp_dir}"/&
&target name="unpack" depends="init"&
&unzip src="${eclipse_install_dir}/plugins/org.eclipse.swt/swtsrc.zip"
dest="${temp_dir}"/&
&unjar src="${eclipse_install_dir}/plugins/org.eclipse.swt/swt.jar"
dest="${temp_dir}"/&
&target name="patch" depends="unpack"&
&patch patchfile="TabFolder.patch"
originalfile="${temp_dir}/org/eclipse/swt/widgets/TabFolder.java"/&
&patch patchfile="Widget.patch"
originalfile="${temp_dir}/org/eclipse/swt/widgets/Widget.java"/&
&patch patchfile="TreeEditor.patch"/&
&move file="TreeEditor.java" todir="${temp_dir}/org/eclipse/swt/custom"/&
&target name="make" depends="patch"&
&execon executable="touch"&
&fileset dir="${temp_dir}" includes="**/*.java" excludes="**/*.class"/&
&execon executable="touch"&
&fileset dir="${temp_dir}" includes="**/*.class" excludes="**/*.java"/&
&copy file="Makefile" todir="${temp_dir}"/&
&exec executable="make" dir="${temp_dir}"&
&arg line="-f Makefile"/&
&target name="cleanup" depends="make"&
&move file="${temp_dir}/${shared_object_name}" todir="."/&
&delete dir="${temp_dir}"/&
&/project&创建应用程序
既然您已经将 SWT 构建到共享对象中,您就可以尝试样本应用程序。显示在清单 2 中的应用程序由一个显示经典“Hello, World!”消息的简单窗口组成。清单 2.“Hello, World”样本应用程序import org.eclipse.swt.widgets.D
import org.eclipse.swt.widgets.S
import org.eclipse.swt.widgets.L
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowL
public class Hello {
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
RowLayout layout = new RowLayout();
layout.justify =
layout.pack =
shell.setLayout(layout);
shell.setText("Hello, World!");
Label label = new Label(shell, SWT.CENTER);
label.setText("Hello, World!");
shell.pack();
shell.open ();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep ();
display.dispose ()
要编译这个应用程序,请遵循下列步骤:将 SWT 共享对象(swt.so)复制到 Hello World 目录中,然后输入下列命令。(请记住,如果在 /usr/local/eclipse 以外的目录中安装了 Eclipse SDK,请用您的目录来替换它。)
gcj -CLASSPATH=/usr/local/eclipse/plugins/org.eclipse.swt/swt.jar
-c Hello.java -o Hello.o
gcj -main=Hello -o Hello Hello.o swt.so接下来,使用下列命令设置库路径(假设您正在使用 bash shell):
export LD_LIBRARY_PATH=
.:/usr/local/eclipse:/usr/local/eclipse/plugins/org.eclipse.swt/ws/motif输入
./Hello ,会看到本机编译的 GUI Java 应用程序出现屏幕上!
注:本文的
包括使这一过程自动化的制作文件。
对 Windows 应用程序的编译很快就可以实现了(请参阅
侧栏),虽然目前仅在 Linux/Motif 和 Windows 上支持 SWT,但正在进行积极的开发以在 Linux 上将 SWT 移植到 GTK/GNOME。SWT 还可以在 AIX 和 Solaris 上的 Motif 下工作,但是还未经全面测试。最后,在 Windows CE、QNX 和 Macintosh 移植上已经完成了一些工作,但是目前主要的侧重点还是针对其它平台。要查看各种 SWT 移植的进展,请参阅
众所周知,Java 语言具有一些重要的特性。它是优雅的,提供了面向对象概念的出色实现,并且具有一个非常有用的标准类库。将这些优点与 GCJ 和 SWT 相结合使 Java 语言定位成在服务器和 Web 浏览器上建立其基础,然后转向最终用户应用程序领域。
参考资料 您可以参阅本文在 developerWorks 全球站点上的
请通过单击本文顶部或底部的
讨论来参与本文的
下载本文的
以获取 SWT 库。此外,请查阅
,并下载最新的发行版
以使您的构建自动化。
如果您想知道关于 Ant 的更多背景知识,这些
developerWorks 文章会对您有所帮助:
Malcolm Davis 写的“
”(2000 年 11 月)
Erik Hatcher 写的“
”(2001 年 8 月)
Anthony Young-Garner 写的“
”(2001 年 11 月)
阅读一篇关于 SWT 的
上的其它 SWT 文章。
查看正在对
展开的讨论。
找到关于 GCJ 的更多信息。通过密切关注
,获得最新信息。
构建您自己的 GCJ;在
上通过文件
gcc-3.0.4.tar.gz
下载源代码。
developerWorks中可以找到其它有关 Java 的文章。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=LinuxArticleID=22299ArticleTitle=创建本机、跨平台 GUI 应用程序publish-date=苹果手机上大多Apple lD账号了,请问怎么才取消所有账号?_百度知道
苹果手机上大多Apple lD账号了,请问怎么才取消所有账号?
我有更好的答案
登录你的帐号删除即可。
在电脑登录?
有苹果设备的话最好用苹果设备
什么设备?
苹果手机,电脑平板
设置,iCloud,账户,然后删除
其他类似问题
为您推荐:
苹果手机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
喜欢动漫可相对电子漫画更喜动画
因看动画所以热爱声优并学习日语
JLPT过了二级但已完全还给书本了
热爱DM自称是腐女实际只是老菜鸟
喜欢看文但只看从不写因为是文盲
羡慕朋友的博客自己却总半途而废
跟好友玩网游时她最高级我刚入门
——基本上年纪不轻思想还很愚钝
做什么都是三分钟热度囧
声优本命:石田彰先生
热爱:JUN/茉莉/朴JJ/小林JJ/光光/关桑/PAPA/MAMO/老猫/……
JPOP:中山优马/SID
CPOP:五月天
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(9707)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_080068',
blogTitle:'EXCEL超级链接“由于本机的限制 该操作已被取消”解决方法',
blogAbstract:'据说不知道是中毒了被杀毒软件干掉了什么文件还是系统更新导致,某一天开始EXCEL原来建立的表内超链接不能用,提示“由于本机的限制,给操作已被取消。请与系统管理员联系。”
心想登陆用户权限本身就是最高级别的(Win7非Administrator级别不能安装Kingdee迷你版,所以当时安装的时候让那位同志把Administrator管理员账户给弄出来了),而且肯定自己没有改过任何选项中的东西,所以万不能跟权限有关,于是BD和GG~~
最后解决办法:
打开开始菜单,在运行里输入regedit,回车 在注册表中,导航到HKEY_CURRENT_USER\\Software\\Classes\\.html 项 在默认项上点右键选择修改 将ChromeHTML',
blogTag:'excel超链接,注册表',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:6,
permalink:'blog/static/',
commentCount:13,
mainCommentCount:13,
recommendCount:4,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'喜欢动漫可相对电子漫画更喜动画
\r\n因看动画所以热爱声优并学习日语
\r\nJLPT过了二级但已完全还给书本了
\r\n热爱DM自称是腐女实际只是老菜鸟
\r\n喜欢看文但只看从不写因为是文盲
\r\n羡慕朋友的博客自己却总半途而废
\r\n跟好友玩网游时她最高级我刚入门
\r\n——基本上年纪不轻思想还很愚钝
\r\n做什么都是三分钟热度囧
\r\n\r\n声优本命:石田彰先生\r\n热爱:JUN/茉莉/朴JJ/小林JJ/光光/关桑/PAPA/MAMO/老猫/……\r\nJPOP:中山优马/SID\r\nCPOP:五月天',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}您的位置:&>&>&>&ld瓷砖质量怎么样?
ld瓷砖质量怎么样?想了解下相关知识,哪里可以了解得到啊?
提问者:钭女士&&&&&地址:张家港&&&& &回答:4&&&&&&&浏览次数:558&&&&&&提问时间:6分钟前
ld瓷砖质量你到装修快车装修知识栏目里面看一下
其他回答&&共3条
&&& 11:11:28
消费者一时大意或经验不足,容易掉入不良商家的陷阱中,所以我建议那些对瓷砖不是很熟悉的朋友还是选择知名品牌的瓷砖买比较好,不要贪小便宜的哦
&&& 10:00:30
ld瓷砖质量不错的
&&& 14:47:15
在家装建材中,地面装饰材料无疑是“重头戏”。然而看似简单的地面瓷砖却藏着不少学问。消费者一时大意或经验不足,容易掉入不良商家的陷阱中,所以我建议那些对瓷砖不是很熟悉的朋友还是选择知名品牌的瓷砖买比较好,不要贪小便宜的哦,至于牌子的话楼主可以考虑下马可波罗,诺贝尔,蒙娜丽莎,东鹏陶瓷瓷砖,罗马等等,这些都是市场上的鼻祖品牌了
别人都在问
目前在线提问:118229&次
目前解决提问:110607&次
他们正在问
他们正在回答
省份/直辖市&
优先考虑有保障金公司&&
10秒快速注册或登录
登录身份:
还没有账号?vldeocallerld来电秀怎样设置_百度知道
vldeocallerld来电秀怎样设置
点击“本机号码”右侧的三点一圆,然后通过图片浏览程序选择图片。  第四步,打开360手机卫士。  第六步,双方必须都安装360手机卫士并都开启了来电秀功能:要想看到朋友的来电秀,点击如图所示个性签名区域,如果你想让自己的来电充满个性。  第三步、在“来电秀设置”下勾选“显示来电秀”复选框按钮,设置个性签名。  第五步,点击主界面左上角头像处;  设置完成后的360来电秀效果,那可一定不要错过本篇教程哦~  第一步,这样便开启了来电秀功能,如下图,可对图片进行放大,或朋友看到你的来电秀,下面开始设置来电秀头像,然后在弹出的界面中选择“预览来电秀”、保持当前联网状态、来电秀图片设置成功后。  第二步、缩小操作;  在文本框中输入签名后点击“确定”按钮完成设置,楼主你好、若没有开启来电秀,则点击界面右上角齿轮状按钮进行设置来电秀操作、点击图中的头像区域,完成编辑后点击“√”按钮即可。  最后有一点请大家注意:360手机卫士来电秀设置方法介绍  想知道360手机卫士来电秀怎么设置吗?接下这篇文章就详细讲解了360来电秀设置方法
其他类似问题
为您推荐:
来电秀的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 excel取消隐藏怎么弄 的文章

 

随机推荐