Java混淆器

我正在寻找一个好的Java混淆器。 我已经对以下Java混淆器进行了初步研究:proguard,yguard,retroguard,dasho,allatori,jshrink,smokescreen,jobfuscate,marvin,jbco,jode,javaguard,jarg,joga,cafebabe,donquixote,mwobfu,bbmug,zelix klassmaster ,sandmark,jcloak,丛林,blufuscator和java代码保护。 我试过proguard它有一个非常好的GUI,看起来非常稳定,似乎是最受欢迎的,但它似乎不喜欢引用的jar文件上的一些枚举(不在我试图混淆的代码中)这很奇怪。 Yguard似乎需要与ant进行一些互动,我对此并不太了解。 什么是好的java混淆器? 它不需要是免费的,它只需要很好地工作并且易于使用。

无法找到Javascript引擎 – Java平台的脚本

最近我的一些用户报告了NullPointers的问题。 感谢其中一个,我已经设法发现我的应用程序找不到理论上应该附带JRE的Javascript引擎(大多数都有JDK)。 他们如何手动安装脚本引擎? 提前致谢… PS这些人大多数都有OpenJDK。 但是,这不会发生在我身上(我也是一个OpenJDK用户)…编辑:他们至少有1.5版本,其中大部分都有1.6。

JTable之间的差距很大

以下是提供我正在寻找的结果的方法,但不幸的是,当显示每页的表格之间存在很大差距。 这样我每个标签只能在屏幕上放入其中两个(每个表只有两行)。 private void display() { JFrame f = new JFrame(“Test”); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new JLabel(“Test”)); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } class ResultsPanel extends JPanel implements ActionListener { private ArrayList venueList; private Timer timer; QueueItem[] queue; Reporter reporter; private JPanel resultsPane1; private JPanel resultsPane2; private JTable[] table1; private JTable[] table2; private int totalItems; public String[] page1ColumnNames = { […]

int vs Integer比较Java

class datatype1 { public static void main(String args[]) { int i1 = 1; Integer i2 = 1; Integer i3 = new Integer(1); System.out.println(“i1 == i2″+(i1==i2)); System.out.println(“i1 == i3″+(i1==i3)); System.out.println(“i2 == i3″+(i2==i3)); } } 产量 i1 == i2true i1 == i3true i2 == i3false 有人可以解释为什么我在比较i2和i3时会出错吗?

使用Java检测Windows / IE代理设置

我需要自动检测用户是否需要代理才能访问互联网。 Java应用程序是否有办法读取系统代理设置? 谢谢,吉米

在单独的线程中创建ServerSocket?

我在我的应用程序中使用ServerSocket遇到问题。 我正在我的应用程序的构造函数中创建ServerSocket 。 套接字的构造函数调用accept()方法等待客户端连接。 问题是accept()方法冻结了我的整个应用程序,直到客户端连接。 所以我想问一下,如果在一个单独的线程中创建整个ServerSocket是否有另一种选择,那么在我的主应用程序旁边调用ServerSocket的构造函数及其accept()方法? 编辑: 感谢Olivier的建议,将.accept放入runnable并创建一个线程池来处理客户端连接。 这就是我现在的代码: public void start(){ final ExecutorService clientProcessingPool = Executors.newFixedThreadPool(10); Runnable serverTask = new Runnable() { @Override public void run() { try { serverSocket = new ServerSocket(port); while (true) { Socket clientSocket = serverSocket.accept(); objectout = new ObjectOutputStream(clientSocket.getOutputStream()); clientProcessingPool.submit(new ClientTask(clientSocket,objectout)); } } catch (IOException e) { System.err.println(“Accept failed.”); […]

是否有一个免费的Eclipse插件,可以用Java类/包创建UML图?

在我看来,这似乎是最容易找到的东西,一种在eclipse中将我的类显示为UML的简单方法 但除此之外: http : //java2uml.gforge.enseeiht.fr/和http://sourceforge.jp/projects/amateras/releases/我没有找到任何新的,维护的和“好的”实施(所有到期)尊重上述两个) 还有我错过的其他东西吗?

Java主要和次要垃圾收集

我一直在阅读Java中的垃圾收集和SO Q&A,但我对垃圾收集的类型感到困惑。 我们以吞吐量收集器为例。 (又名并行收集器)。 文档称它使用多个线程来执行Minor集合,并使用单个线程来处理Major集合(与Serial collector相同)。 现在我的问题: 全GC的含义是什么:a)是否意味着小型和主要collections品都已完成? 或者b)完整GC ==主要collections? 哪一个? 如果a),是否意味着Minor Collection仍然使用多个线程完成,而Major是使用Single完成的? 如果b),是否意味着使用单线程清除了Young和Old Generations? 另外,4。Full GC是否仅影响OldGeneration或YoungGeneration? 提前致谢。

如何拆分文件中的字符串并读取它们?

我有一个包含信息的文件。 看起来像: Michael 19 180 Miami George 25 176 Washington William 43 188 Seattle 我想分割线条和字符串并阅读它们。 我希望它看起来像: Michael 19 180 Miami George … 我使用了这样的代码: BufferedReader in = null; String read; int linenum; try{ in = new BufferedReader(new FileReader(“fileeditor.txt”)); } catch (FileNotFoundException e) {System.out.println(“There was a problem: ” + e);} try{ for (linenum = 0; linenum<100; linenum++){ […]

如何在Hadoop-.20 api中指定KeyValueTextInputFormat分隔符?

在新的API(apache.hadoop.mapreduce.KeyValueTextInputFormat)中,如何指定除tab之外的分隔符(分隔符)(默认值)以分隔键和值。 样本输入: one,first line two,second line 输出要求: Key : one Value : first line Key : two Value : second line 我将KeyValueTextInputFormat指定为: Job job = new Job(conf, “Sample”); job.setInputFormatClass(KeyValueTextInputFormat.class); KeyValueTextInputFormat.addInputPath(job, new Path(“/home/input.txt”)); 这适用于tab作为分隔符。