错误:java.lang.IllegalArgumentException:即使使用变通方法,比较方法也违反了其一般合同

我已经花了两天时间来缩短这个错误,即使我尝试了几个stackoverflowpost“-Djava.util.Arrays.useLegacyMergeSort = true”中建议的解决方法,但它也不起作用。 这是我的命令及其返回错误的详细信息: 命令: hadoop jar CloudBrush.jar -Djava.awt.headless=true -Djava.util.Arrays.useLegacyMergeSort=true -reads /Ec10k -asm Ec10k_Brush -k 21 -readlen 36 错误: Error: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeHi(TimSort.java:895) at java.util.TimSort.mergeAt(TimSort.java:512) at java.util.TimSort.mergeCollapse(TimSort.java:437) at java.util.TimSort.sort(TimSort.java:241) at java.util.Arrays.sort(Arrays.java:1512) at java.util.ArrayList.sort(ArrayList.java:1454) at java.util.Collections.sort(Collections.java:175) at Brush.VerifyOverlap$VerifyOverlapReducer.reduce(VerifyOverlap.java:252) at Brush.VerifyOverlap$VerifyOverlapReducer.reduce(VerifyOverlap.java:1) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:444) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at […]

使用HttpURLConnection到PHP的POST文件

我已经引用了这个链接使用POST和HttpURLConnection发送文件 使用以下代码,我正在尝试将文件POST到本地PHP服务器。 它总是在我的PHP文件中返回文件大小0 public class FileUpload2 { String CRLF = “\r\n”; /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { new FileUpload2().put(“http://localhost/test/test.php”); } public void put(String targetURL) throws Exception { String BOUNDRY = “==================================”; HttpURLConnection conn = null; try { // These strings are sent in the request […]

JavaFX:如何在XY线图的Y轴上正确实现`getValueForDisplay()`?

我试图在线图上实现工具提示以显示X轴和Y轴的值,我正确地获得X轴的值,但Y轴值未正确计算。 我试着做数学,但是当我们调整窗口大小时,到目前为止没有任何帮助。 是否有任何逻辑可以帮助我们正确计算Y轴上的值? // lineChart is an object of AreaChart Or XYChart lineChart.setOnMouseMoved(new EventHandler() { @Override public void handle(MouseEvent event) { Tooltip t= new Tooltip(“X:”+lineChart.getXAxis().getValueForDisplay(event.getX()-lineChart.getXAxis().getLayoutX())+”, Y:”+ lineChart.getYAxis().getValueForDisplay(event.getY())); t.show(stage); } });

如何使用applet和servlet在两个客户端和两个客户端之间启动聊天?

我首先需要为我之前的问题道歉。 (你可以查看我的个人资料)他们似乎提出了更多的问题,而不是给出答案。 因此,我正在制定实际问题,这些问题开始了他们所有荒谬的问题。 我正在尝试设计一个聊天小程序。 直到现在,我已经对applet和servlet之间的applet,servlet和通信进行了编码。 servlet方面的代码使得我能够使用applet在客户端之间建立聊天,但代码更像是广播所有function,即所有客户端将彼此聊天。 这是我开始设计聊天小程序时的第一个目标。 第二步是仅在两个特定用户之间聊天,就像我们拥有的任何其他聊天应用程序一样。 所以这是我的想法: 我创建了一个具有’broadcast-all’代码的servlet实例。 然后,我将此实例的地址传递给相应的客户端。 2个客户端小程序使用该地址然后聊天。 从技术上讲,代码是’broadcast-all’,但由于只有2个客户端连接到它,它提供了两个客户端function之间的聊天。 因此,2个客户端的组具有相同servlet的不同实例,并且每个实例处理最多两个客户端之间的聊天。 然而,正如预测的那样,这个想法没有实现! 我试图创建一个servlet的实例,但唯一的解决方案是在servlet端使用会话,我不知道如何使用此会话进行以后的通信。 我现在知道如何使用request.getSession()。 因此,我在其param标记中为applet设置会话,并将其用于与servlet的进一步通信。 但是如何使用这些数据在两个客户端之间建立聊天? 正如我之前写的,我有broadcast_all聊天的代码如下: public class CustomerServlet extends HttpServlet { public String getNextMessage() { // Create a message sink to wait for a new message from the // message source. return new MessageSink().getNextMessage(source); } @Override protected void doGet(HttpServletRequest request, […]

移动libgdx时精灵闪烁

此代码在向左,向右,向下或向上移动时使图像边框闪烁(闪烁)。 为什么即使我使用Screen类render()方法delta值,图像边框闪光也会移动。 package com.me.mygdxgame; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture.TextureFilter; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Vector3; public class MoveSpriteExample extends GdxTest implements InputProcessor { Texture texture; SpriteBatch batch; OrthographicCamera camera; Vector3 spritePosition = new Vector3(); Sprite sprite; public void resize (int width, int height) { } public […]

带有welcome-file-list中不同文件的web.xml

我开始使用JSF了,我有点迷失了。 我正在开发一个JSF应用程序,我有两个输入点。 有时我需要我的浏览器打开一个名为mydata.xhtml的页面,有时我需要打开一个名为dataexchange.xhtml的页面。 现在我完成了第一个,应用程序运行正常。 我想我必须更改我的web.xml文件,不是吗? 我的web.xml就是这个。 javax.faces.PROJECT_STAGE Development Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* 30 faces/mydata.xhtml

上传图像为base64格式和压缩图像,然后通过改造发送到服务器?

我已经制作了上传图片,我在互联网上的教程中进行了改造。 这是我的代码: AcademicClient.class @Multipart @POST(“/”) Call postImage(@Part MultipartBody.Part image, @Part(“name”)RequestBody name); MainFeed.class File file = new File(filePath); RequestBody reqFile = RequestBody.create(MediaType.parse(“image/*”),file); MultipartBody.Part body = MultipartBody.Part.createFormData(“upload”,file.getName(),reqFile); RequestBody name = RequestBody.create(MediaType.parse(“text/plain”),”upload_test”); Log.d(“xxxxxxx”,body + ” —- “+ name); AcademicClient client = ServiceGenerator.createService(AcademicClient.class); Call call = client.postImage(body,name); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { } […]

JSF 1.2生命周期理解:在InvokeApplication阶段执行ValueChangeListener方法

我在DataTable的facet头中使用 。 该 DataTable的所有行内容都是 。 行按照我想要的方式完美选择。 以下是我使用的代码: …… …… …… 这是ValueChangeListener的代码: public void checkAll(ValueChangeEvent event){ if(isInvokeApplicationPhase(event)){ Iterator empl = employeeList.iterator(); while(empl.hasNext()){ Employee emp = empl.next(); emp.setChecked(checkedHdr); } } } 这是我为使这段代码工作而添加的isInvokeApplicationPhase实用程序(在此链接中引用了BalusC建议的解决方案: JSF 1.2:valueChangeListener事件未返回新选择的值 ): public boolean isInvokeApplicationPhase(FacesEvent event){ if(event.getPhaseId() != PhaseId.INVOKE_APPLICATION){ event.setPhaseId(PhaseId.INVOKE_APPLICATION); event.queue(); return false; } return true; } 现在我的问题: 在ValueChangeListener方法中使用isInvokeApplicationPhase检查有什么用? 如果我评论这个检查然后它不起作用 – 为什么? 我以为我已经正确理解了JSF生命周期,但这种行为certificate我没有:( 请让我知道基于JSF生命周期阶段的解释。

如何使用Java读取文本文件的特定部分

我有一个包含的文本文件 “[PartA] 1 2 3 [PartB] 4 5 6 [PartC] 7 8 9” 到目前为止我所做的只是阅读[PartA]这里是我的代码: try { BufferedReader fw = new BufferedReader(new FileReader(new File(filename))); while(!((content=fw.readLine()).equals(“[PartB]”))) { System.out.println(content); } } catch(Exception e) { } 那么我怎么才能只阅读PartB或只阅读PartC?

使用URL或文件(在ImageIO.read中)

我制作了一个使用多个图像的应用程序。 我有2种方式来运行我的应用程序: – 按想法run – 制作一个胖jar文件并从控制台java -jar app.jar运行它 如果我想从Idea运行它我必须使用: BufferedImage backgroundImage = ImageIO.read(new File(“res/field.png”)); 代替 BufferedImage backgroundImage = ImageIO.read(getClass().getClassLoader().getResource(“res/field.png”)); < – 这就是我在jar文件中使用的情况 为什么? 我以为他们差不多了。 我的案子有通用的方法吗?