我正在使用Netbeans IDE开发一个Java Web Start应用程序,该应用程序将从Web启动,然后使用EclipseLink JPA访问远程MySQL数据库.我正在使用Swing应用程序框架来管理我的应用程序的生命周期.
当我从Netbeans启动应用程序时,我的应用程序加载大约需要7秒钟,但是当我使用Netbeans IDE创建Web Start分发包(包含JAR和JNLP文件)时,启动大约需要60秒.此外,每次启动应用程序时,"验证应用程序"/"下载应用程序"进度条窗口似乎都会运行,即使已经缓存了它的副本.
从用户的角度来看,首先看到我的启动画面1到2秒,然后"验证应用程序"/"下载应用程序"进度条窗口持续5到20秒,然后在应用程序启动前40秒内没有任何内容.
编写应用程序代码,以便它应该在JPA开始加载持久性单元之前显示自己(所以我怀疑这是问题),但我想我会提到它以防万一.
更新:方法createEntityManagerFactory使用Web Start缓慢
进一步研究后,我发现当我从Netbeans运行应用程序或者当我远程登录到我的服务器时,方法createEntityManagerFactory--这是EclipseLink连接到MySQL所必需的 - 大约需要5秒钟才能执行在那里启动JNLP,但是当我通过网络运行应用程序时,同一行需要35秒(大大延迟启动).有趣的是,随着我的互联网连接速度变差,这一次变得更糟.下面是我正在使用的JNLP文件的副本.
有谁知道可能导致这种延迟的原因是什么?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Run Code Online (Sandbox Code Playgroud)
MyApp我的应用程序供应商我的应用程序描述MyApp
我正在尝试使用热键和在任务栏托盘中启动的选项来创建应用程序.
现在的问题是,this.Hide()在load事件中使用不会产生任何影响.我可以添加this.ShowInTaskbar = false,但在我再次设置为true后,为了显示窗口,它会自动禁用我的热键.
有没有其他方法可以在启动时隐藏我的表单,或者阻止我的热键取消注册?
我隐藏表单的代码:
private void frmMain_Load(object sender, EventArgs e)
{
if (StartBG())
{
this.Hide();
this.ShowInTaskbar = false;
notifyIcon.Visible = true;
notifyIcon.ShowBalloonTip(3000, "Kore screenshots", "The application is started and will run on the background.", ToolTipIcon.Info);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码之后,热键仍然有效,
private void showform()
{
this.Show();
this.ShowInTaskbar = true;
notifyIcon.Visible = false;
this.WindowState = FormWindowState.Normal;
}
Run Code Online (Sandbox Code Playgroud)
在此代码之后,热键被禁用.
在Mac OS中,我创建了一些AppleScripts来添加和删除启动应用程序(“登录”项目,在“帐户”系统窗格下)。
#!/bin/bash
/usr/bin/osascript -e "tell application \"System Events\" to make new login item with properties { path: \"$1\", hidden:false } at end"
Run Code Online (Sandbox Code Playgroud)
用法如下:
./addloginitem.sh /Applications/TextEdit.app
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有可能使用参数的启动项?我有一个程序,如果登录后直接运行,我想将其传递给“启动”参数。
为什么iPhone应用程序的启动画面需要更多时间来加载?
我们可以将时间设置为仅几秒钟吗?现在需要将近一分钟.
我目前正在研究ac#wpf项目.我已经向程序添加了代码,以便它创建一个注册表项,以便在用户登录时自动启动程序,并且还编写了程序,以便最小化到系统托盘.
当用户自己手动启动程序时,我显然希望程序像正常一样出现在屏幕中间,但是当程序在启动时自动启动时我希望它最小化加载.
有没有办法确定程序是由用户启动还是在启动时启动,以便我可以使其加载最小化而不是在启动时出现在屏幕上.
我有一个python守护进程,它通过rc.local启动.具有相同权限的相同脚本安装在我拥有的其他一些Ubuntu盒子上.它在这些安装上运行没有问题.也就是说,重启框后,守护进程正在运行.
但是,通过此特定安装,守护进程在我登录时未运行并检查进程是否存在.系统之间的rc.local文件是相同的(或至少足够接近):
localaccount@sosms:~$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
python /var/www/myDaemon/Main.py > /var/log/somelog.txt
exit 0
Run Code Online (Sandbox Code Playgroud)
权限是:
localaccount@sosms:~$ ls -la /etc/rc.local
-rwxr-xr-x 1 localaccount localaccount …Run Code Online (Sandbox Code Playgroud) 我在初始启动mysql-cluster管理节点时遇到了问题,并且非常感谢我能解决这个问题.请参阅我的两个失败示例,然后是我的config.ini文件.第一个示例显示了启动守护程序的基本命令及其产生的错误.第二次尝试跳过我认为在第一次引起错误的过程,但只导致一个不同的错误(我找不到解决方案).
〜$ ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql - 5.5.25 ndb-7.2.7 2012-07-27 16:44:51 [MgmtSrvr] INFO - 默认配置目录'/ user/local/mysql/mysql-cluster'不存在.试图创建它...无法创建目录'/ usr/local/mysql/mysql-cluster',错误:2 2012-07-27 16:44:51 [MgmtSrvr]错误 - 无法创建目录'/ usr /本地/ MySQL的/ MySQL的群集".手动创建它或使用--configdir =指定不同的目录
〜$ ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql - 5.5.25 ndb-7.2.7 2012-07-27 16:44:51 [MgmtSrvr ] INFO - 由于禁用了配置缓存,因此跳过了对配置目录的检查.无法解析日志处理程序的参数:'FILE:filename =/var/lib/mysql-cluster/ndb_1_cluster.log,maxsize = 1000000,maxfiles = 6',错误:13'(null)'
/var/lib/mysql-cluster/config.ini:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate … 我对Android编程很新,开发了一个实现了导航抽屉的应用程序.根据谷歌的指导方针,我希望NavDraw能够开启,但我无法做到这一点.
这是我的onCreate(我想这是我应该实现这个功能的地方,对吧?)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, menuEntries);
final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
final ListView navList = (ListView) findViewById(R.id.drawer);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
drawerToggle = new ActionBarDrawerToggle(
this,
drawer,
R.drawable.ic_drawer,
R.string.drawer_open,
R.string.drawer_close
)
Run Code Online (Sandbox Code Playgroud)
(......)
我有一个包含3个节点的集群(在不同的机器中),我有一个"业务逻辑",它在启动时使用分布式锁.
有时,当有更多延迟时,每个 节点都获得成功的独占 锁 , 因为集群尚未"启动",因此每个节点还没有看到另一个节点.
随后,节点彼此看到,并且群集正确配置了3个节点.我知道有一个"MemberShipListener"来捕获事件"成员添加"所以我可以再次执行"业务逻辑",但我想知道是否有一种方法来确保集群启动何时正确完成以便等待执行"业务逻辑"直到群集开启.
我尝试使用hazelcast.initial.wait.seconds但配置正确的秒不是确定性的,我不知道这是否也会延迟成员加入操作.