我写的一个应用程序使用了几个第三方罐子.有时只使用整个50kB到1.7mB jar的一小部分 - 一个或两个函数调用或类.
什么是减少罐子大小的最佳方法.我应该下载源代码并构建一个只需要我需要的类的jar吗?哪些现有工具可以帮助实现此功能(请参阅http://code.google.com/p/jarjar/)?
谢谢
编辑1: 我想降低我的第三方'官方'罐子的大小,如swingx-1.6.jar(1.4 MB),set-3.6(1.7 MB)glazedlists-1.8.jar(820kB)等等,这样他们就可以了只包含我需要的最小类
编辑2: 如果库使用反射,手动或使用程序如proguard最小化jar会更复杂. 在使用proguard进行模糊处理后,使用google guice注入不再起作用
cletus对另一篇文章的回答非常好如何确定Java程序使用哪些类?
在进行drupal 6到7升级时,我收到的消息并不那么有用"网站遇到意外错误.请稍后再试." 每次我去某些页面.ex)/ admin/config
找出导致致命错误的原因的最佳方法是什么,以便我可以修复它?
我现在能想到的就是在该页面工作或查看日志之前开始禁用提供的模块.
谢谢.
有没有人知道现有的解决方案来帮助编写NSIS脚本的测试?
动机是知道修改现有安装脚本是否会破坏它或产生不良副作用的好处.
我已经看到像http://one-jar.sourceforge.net/和http://fjep.sourceforge.net/index.html这样的程序将你的应用程序jar和任何依赖项推送到一个可执行的jar中.
这样做的主要原因是什么?
Norton Antivrus正在标记我的安装程序,foobar_revision_1922.exe
因为它有非常少的用户(Norton社区中少于5个, WS.Reputation.1)并将文件置于隔离状态,因此不正确地将其视为威胁.有谁遇到过这种情况?
阻止Norton翻转的最佳方法是什么?
这看起来很乏味,而且是Catch-22.
对于将来的版本,例如foobar_revision_2116.exe
,我需要让新版本的五个可信用户通过隔离.
如果我将所有版本重命名为通用文件名foobar_installer.exe
,则删除有用的版本信息,并且我认为文件大小由Norton存储,无论如何这都会失败.
建议?
谢谢.
编辑:
经过多一点搜索后我找到了答案 - https://submit.symantec.com/whitelist/.赛门铁克有一个白名单计划
编辑2 诺顿提供类似Apple的响应时间:
我们最近收到了您对赛门铁克软件白名单请求计划的请求.将立即处理包含所有必要信息的完整请求.一旦确定了您的请求,您将通过电子邮件通知您做出的决定以及后续步骤(如果有).对于软件白名单请求,赛门铁克将针对在3周内建议您做出最终决定的回复.此时间范围取决于Symantec是否提供了所有必要信息以便进行适当的确定.对不完整信息的请求可能导致最终确定的延迟.任何有关您提交的其他信息的请求都将发送到您在提交时提供的联系电子邮件地址.
JFrame.setResizable(true)
让用户调整窗口的宽度和高度.是否存在允许用户仅调整高度的方法?
谢谢.
编辑:下面的解决方案似乎不起作用.在360x600 JFrame上,
setResizable(true);
pack();
setMaximizedBounds(new java.awt.Rectangle(0, 0, 360, 1200));
setMaximumSize(new java.awt.Dimension(360, 1200));
setMinimumSize(new java.awt.Dimension(360, 600));
setPreferredSize(new java.awt.Dimension(360, 600));
setVisible(true);
Run Code Online (Sandbox Code Playgroud)
仍然允许完全拉伸JFrame的宽度,并且设置setResizable(false)
不允许任何拉伸.
编辑
Downvoter,这怎么回事?我提供了该问题的可运行示例代码.如果它适合您,请让我知道或指出不清楚的地方.
您好,
在下面的代码中有一个单独JComboBox
的JFrame
,当鼠标进入JComboBox
或被点击或焦点获取时,我不会收到通知.但是,PopupMenuEvent
工作正常.
我究竟做错了什么?(我的目标是在单击JComboBox的文本组件时收到警报)
public class TestJComboBox extends javax.swing.JFrame
{
public TestJComboBox()
{
initComponents();
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jComboBox1 = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
formMouseClicked(evt);
}
});
jComboBox1.setEditable(true);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jComboBox1.setName("jComboBox1"); // NOI18N
jComboBox1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jComboBox1MouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) …
Run Code Online (Sandbox Code Playgroud)
java中是否有功能可以跨任何平台打开文件的包含文件夹.我可以通过运行在Windows中完成此操作
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("explorer /select,c:\\sampleFile.txt");
Run Code Online (Sandbox Code Playgroud)
您可以在任何平台上打开文件(如果支持Desktop api)java.awt.Desktop.getDesktop().open(file)
.是否有类似的东西可以调出文件管理器?
谢谢.
为什么我在E位为0时获得dtmf声音而在1为1时没有声音?(RTP数据包以无论哪种方式出现在wireshark中)
我可以发送一个RFC 2833 dtmf事件,如http://www.ietf.org/rfc/rfc2833.txt所述, 当未设置E位时获得以下行为:
如果7874556332111111145855885#3
按下键,则会发送所有事件并显示在wireshark等程序中,但只有87456321458585#3
声音.所以第一个键(我认为可能是一个单独的问题)和事件的任何重复(即11111)都听不到.
在上面链接文档的图3.9的3.9节中,它们给出了一个911示例,其中除了最后一个事件之外的所有事件都设置了E位.
当我为所有数字设置'E'位为1时,我从未发出声音事件.
我想到了一些可能的原因,但不知道它们是否是原因:
1)图2显示了96和97发送的有效载荷类型.我没有发送这些标题.在3.8节中,代码96和97被描述为"分别为冗余机制和电话事件有效载荷分配了动态有效载荷类型96和97"
2)在第3.5节"E:"中,"发送方可以延迟设置结束位,直到重新发送音频的最后一个数据包,而不是第一次传输"是否有人知道如何实际执行此操作?
3)我有一个单独的输出流,如果它可能干扰听到这个流,也会很奇怪.
4)还摆弄了时间戳间隔和RTP标记.
任何帮助是极大的赞赏.以下是相关领域的wireshark事件捕获示例:
6590 31.159045000 xx.x.x.xxx --.--.---.-- RTP EVENT Payload type=RTP Event, DTMF Pound # (end)
Real-Time Transport Protocol
Stream setup by SDP (frame 6225)
Setup frame: 6225
Setup Method: SDP
10.. .... = Version: RFC 1889 Version (2)
..0. .... = Padding: False
...0 .... = Extension: False
.... 0000 = Contributing source identifiers count: 0
0... .... = Marker: False …
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的表格:
<form action="" method="post">
...
</form>
Run Code Online (Sandbox Code Playgroud)
当我单击提交时,我希望它使用表单中提交的值刷新URL.但事实并非如此.问题是提交取决于url参数.
这是有问题的页面:
http://www.comehike.com/hikes/search_hikes.php?all=yes&when=f&redirect=yes
如果您搜索左上角的表单,它实际上不会搜索您要求的内容,因为URL没有更改.它只搜索默认值.有什么方法可以解决这个问题吗?我哪里错了?
谢谢!