小编Pat*_*aDJ的帖子

错误:找不到常见的超类

我正在尝试使用Proguard处理MS Windows桌面应用程序(使用Eclipse提供的SWT lib的Java 6 SE).我收到以下严重错误:

Unexpected error while performing partial evaluation:
Class = [org/eclipse/swt/widgets/DateTime]
Method = [<init>(Lorg/eclipse/swt/widgets/Composite;I)V]
Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [java/lang/StringBuffer] and [org/eclipse/swt/internal/win32/TCHAR])
Error: Can't find common super class of [java/lang/StringBuffer] and [org/eclipse/swt/internal/win32/TCHAR]
----------------------------
Run Code Online (Sandbox Code Playgroud)

当我试图谷歌的错误,它只出现在整个网络上的两个点,这让我非常惊讶.我是新手,使用Proguard和Java代码优化工具.任何想法和建议如何解决这个问题,将不胜感激.提前致谢.

以上错误现已修复,使用"-dontskipnonpubliclibraryclasses"

- 最新更新:

我现在还有另一个错误.整个输出现在如下:

D:\eclipse_projs\java_obfuscate\gci>gci.bat
ProGuard, version 4.4
Reading program jar [D:\eclipse_projs\java_obfuscate\gci\gci.jar]
Reading library jar [D:\jre1.6.0_07\lib\rt.jar]
Unexpected error while evaluating instruction:
  Class       = [org/eclipse/swt/widgets/Synchronizer]
  Method      = [runAsyncMessages(Z)Z]
  Instruction = [60] aload_1 v1
  Exception   = [java.lang.IllegalArgumentException] (Value is not …
Run Code Online (Sandbox Code Playgroud)

java obfuscation optimization proguard

11
推荐指数
1
解决办法
1万
查看次数

如何在PHP中逐字节写入socket?

如何在PHP中逐字节写入socket?

例如,我该怎么做:

socket_write($socket,$msg.14.56.255.11.7.89.152,strlen($msg)+7);
Run Code Online (Sandbox Code Playgroud)

伪代码连接数字实际上是dec中的字节.希望你能理解我.

php sockets byte raw-sockets

5
推荐指数
1
解决办法
9605
查看次数

Java ProGuard.类保持(不删除)但允许混淆

我想从删除中跳过某个特定的类.它通常不会在我的应用程序中的任何地方引用,而只是通过反射引用,因此它会被收缩器删除.它在其包中被其他"相邻"类引用,但是,不是直接用于我的应用程序,而是仅通过反射.

我决定专门针对这个特定的类,一个映射:

org.mypckg.Helper -> gh6
Run Code Online (Sandbox Code Playgroud)

...然后当然我用我的应用改变了反射调用:

forName("gh6")
Run Code Online (Sandbox Code Playgroud)

我的映射输入似乎没有问题,但映射规则本身不足以阻止类被删除.另外我仍然无法使用-keep开关来保持类,因为它确实使用其原始名称(org.mypckg.Helper)来保留它,这是我不想要的.

出于这样或那样的原因,我无法在项目中手动将类重构(重命名)为"gh6".

java obfuscation class proguard preserve

5
推荐指数
1
解决办法
3803
查看次数

使用 Web 浏览器和客户端 JavaScript 将文件逐块写入磁盘

最新的 Chrome、Firefox 或 IE 是否可以要求用户提供文件的“另存为”位置,然后使用您自己的 javascript 算法“附加”字节到所需/按用户选择的位置逐块写入文件。让我澄清一下:

  1. 要求用户指定文件名的另存为位置,例如:C:\ggg.png(但数据尚未保存)
  2. 之后能够以编程方式在某些 Blob 或其他内容中逐块写入数据吗?

html javascript browser google-chrome fileapi

5
推荐指数
0
解决办法
1350
查看次数

将任意大小的byte []转换为BigInteger []然后安全地转换回完全相同的byte [],任何线索?

我认为完全转换为BigInteger []在我的情况下是最佳的.有没有人用Java编写并发现这个并愿意分享?

所以想象一下,我有任意大小byte[] = {0xff,0x3e,0x12,0x45,0x1d,0x11,0x2a,0x80,0x81,0x45,0x1d,0x11,0x2a,0x80,0x81} 如何将其转换为BigInteger数组,然后能够安全地将其恢复回原始字节数组?

ty提前.

java algorithm byte biginteger

4
推荐指数
1
解决办法
4395
查看次数

编辑 - MySQL.大型MyISAM表(40mln记录),索引非常慢,磁盘大小很大

该表包含大约40,000,000条记录:

CREATE TABLE `event` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `some_other_id_not_fk` int(10) unsigned default NOT NULL,
  `event_time` datetime NOT NULL,
  `radius` float default NULL,
  `how_heavy` smallint(6) default NULL,
  PRIMARY KEY  (`id`),
  KEY `event_some_other_id_not_fk` (`some_other_id_not_fk`),
  KEY `event_event_time` (`event_time`)
) ENGINE=MyISAM AUTO_INCREMENT=6506226 DEFAULT CHARSET=utf8 
Run Code Online (Sandbox Code Playgroud)

您应该知道some_other_id_not_fk列不大,它只包含7个不同的数字.真正的痛苦是event_time日期时间列,因为它包含非常大量的不同日期时间,并且基本上允许所有内容:重复以及不可预测的大时间间隔而没有记录来"覆盖"它们.您还应该知道(some_other_id_not_fk,event_time)对必须允许重复:(我知道这会导致更多问题:(

我在优化MySQL表方面有一些经验,但是这种巨大的痛苦从未出现在我的视野中:/

"事物"的当前状态是:

  • event_timedate1和date2之间的选择(我需要做的)是令人满意的快速.:)
  • 我的插入很慢,我的意思是真的很慢!超过30秒,更糟糕的是:临时DISABLE和ENABLE KEYS的LOAD DATA程序非常慢(几个小时),主要是在ENABLE键操作上.
  • 磁盘上索引的大小是数据大小的7倍

到目前为止,我会尝试几种不同的重新索引组合,但是这些数据的大小确实阻止了我对索引进行实验并且随意删除/创建列.

请帮助任何人管理过这个?应该使用timestamp而不是datetime解决我的问题?或者,也许我应该添加更多的列day,year...等和对他们索引?

mysql database indexing optimization query-optimization

3
推荐指数
1
解决办法
3632
查看次数

GNU 通配符是否能够匹配更复杂的模式,例如正则表达式?

假设我在 makefile 中有以下通配符匹配项:

data-files = $(wildcard $(ptdf)/*.png) \
    $(wildcard $(ptdf)/*.gif) \
    $(wildcard $(ptdf)/*.bmp) \
    $(wildcard $(ptdf)/*.jpg) \
    $(wildcard $(ptdf)/*.ico) \
    $(wildcard $(ptdf)/*.dist) \
    $(wildcard $(ptdf)/*.html)
Run Code Online (Sandbox Code Playgroud)

通配符语法能否让我能够像正则表达式\w{1,2}那样匹配包含 1 到 2 个字母的文件名?没有文件扩展名?

如果没有,我该如何使用 linux 命令(例如find,等)使用其他语法来做到这一点?

regex linux wildcard find gnu-make

1
推荐指数
1
解决办法
4379
查看次数

在Java中:如何访问动态引用类的静态属性?

在Java中:如何访问动态引用类的静态属性?我举一个简短的例子:

AppleTree.areTheyAllGrown=true;
Run Code Online (Sandbox Code Playgroud)

我只是想动态引用静态属性的类'areTheyAllGrown'这个静态属性可以是AppleTree的成员,也可以是其他一些类的成员,其中cource也会有相同的命名静态属性:'areTheyAllGrown'.

只要我的应用程序逻辑要求我有许多其他树类型,如CherryTree,ApricotTree等,这意味着接口TreeBehaviour不是足够的解决方案,因为通过设置AppleTree的'areTheAAllGrown',我想标记让我们说:只有我的AppleTree实例,而不是所有Tree实例.看到?

你会说:制作一个AppleTreeImpl接口并将属性放在那里......好吧......这会强制接口,仅为一个属性创建... Impl接口用于我所有不同的树类型?是不是有更短的解决方案?

当然,我看到许多其他方法来实现整个内容,并且需要动态引用类,但我感兴趣如果我能通过这种方法特别做到这一点.也没有过多使用接口或其他辅助类,也没有Tree类之外的公共属性.

java syntax static properties class

0
推荐指数
1
解决办法
2453
查看次数