小编SJu*_*n76的帖子

如何为我的Java软件创建许可证?

我有一个很大的问题.那就是"如何为我的软件创建许可证".

好的,认为这是我的许可证密钥 - 12345YW

当用户输入此许可证密钥时,软件应允许他使用该软件.好吧,一旦用户输入许可证密钥,我的软件必须记住他已经输入了有效密钥,对吧?(因为从下次开始,它不必提示许可证对话框)我的问题是,如何让我的用于记住用户输入许可证的软件?在基于Windows的应用程序中,他们大多数人都在输入Windows注册表的条目.我可以这样做吗?(那么Ubuntu和Mac呢?)

我想写一个.txt文件,所以软件可以读取它并查找是否输入了许可证.然而,这是我能想到的最安全的系统.

因此,如果我输入上述许可证密钥,我该如何让我的软件记住它?如果你能给我一个代码示例,我真的很高兴(即:我不知道如何编辑注册表,如果是Windows注册表等).请帮我...

java security registry licensing

21
推荐指数
2
解决办法
4万
查看次数

JavaScript计算机代数系统

我正在为JavaScript 寻找一个简单的计算机代数系统(cas),但我找不到谷歌的任何东西.我只需要基本功能:

  • 将表达简化为某种形式.能够检查两个表达式是否相同,即a(x + y)== ax + ay
  • 解析数学公式.我希望它能够读取像ax²+ 4x这样的表达式.
  • 求解简单方程等

你知道这样的图书馆吗?

javascript

17
推荐指数
3
解决办法
6040
查看次数

错误处理程序Servlet:如何获取异常原因

我在web.xml中配置了一个错误的servlet:

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/ExceptionHandler</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

对?

在我的(通用)servlet中:

doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        ...
        ...
    } catch (Exception e) {
        throw new ServletException("some mesage", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,"e"将是这种情况下的根本原因.

在我的ExceptionHandler类中,我有:

doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
    throwable.getCause() //NULL
}
Run Code Online (Sandbox Code Playgroud)

这就是问题.throwable.getCause()为null.

java servlets exception-handling

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

Java 1.8边框渲染不正确

从Java 1.7升级到Java 1.8后,我遇到了摆动边框的一些问题:

在我的所有按钮上,我需要一个坚实的背景颜色和一个实心边框,所以我通过UIManager定义了它.在Java 1.7和以前的版本中,一切看起来都不错,但在Java 1.8上,边框都搞砸了.此外,RadioButton看起来非常奇怪和锯齿状.CheckBoxes似乎也有问题.

为了演示,我创建了一个包含几个组件的简短示例:

import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.UIManager;

public class CompDemo extends JFrame
{

    public CompDemo()
    {

        setLayout(new FlowLayout());

        add(new JButton("button"));
        add(new JTextField("txt"));
        add(new JComboBox<String>());
        add(new JRadioButton("radio"));
        add(new JToggleButton("toggle"));
        add(new JCheckBox("check"));

        pack();
        setVisible(true);

    }

    public static void main(String[] args)
    {
        UIManager.put("Button.background", Color.LIGHT_GRAY);
        UIManager.put("Button.border", BorderFactory.createCompoundBorder(BorderFactory
            .createLineBorder(Color.RED), BorderFactory.createLineBorder(Color.CYAN)));

        new CompDemo();

    }

}
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到具有不同JDK版本的输出(扩展到200%而没有抗锯齿):第一个是Java 7u60并显示一切正确.在第二张图片上,我圈出了差异.第三个是使用Java 8u11,你可以看到边框非常混乱(下拉箭头看起来也很奇怪).

http://imgur.com/K4df1Lg

我在红色LineBorder中使用了青色LineBorder,因此您可以更清楚地看到问题.

我的操作系统是Windows 8 x64,如果重要的话.

任何人都可以告诉我为什么在Java 8上看起来如此不同?我错过了什么,或者他们是否真的搞乱了Java …

java user-interface swing look-and-feel

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

Criteria API:获取列表返回重复的主实体

我有以下实体; Ticket包含一组0,N WorkOrder:

@Entity
public class Ticket {

  ...

  @OneToMany(mappedBy="ticket", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  private List<WorkOrder> workOrders = null;

  ...
}

@Entity
public class WorkOrder {
  ...
  @ManyToOne
  @JoinColumn(nullable = false)
  private Ticket ticket;
}
Run Code Online (Sandbox Code Playgroud)

我正在加载Tickets并获取属性.所有0,1属性都没有问题.对于workOrders,我使用此答案来获取以下代码.

CriteriaBuilder criteriaBuilder = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Ticket> criteriaQuery = criteriaBuilder
  .createQuery(Ticket.class);
Root<Ticket> rootTicket = criteriaQuery.from(Ticket.class);

ListAttribute<? super Ticket, WorkOrder> workOrders =
  rootTicket.getModel().getList("workOrders", WorkOrder.class);
rootTicket.fetch(workOrders, JoinType.LEFT);

    // WHERE logic
    ...

criteriaQuery.select(rootTicket);
TypedQuery<Ticket> query = this.entityManager.createQuery(criteriaQuery);
return query.getResultList();
Run Code Online (Sandbox Code Playgroud)

结果是,在一个查询应该返回1个带有5个workOrders的Ticket,我正在检索相同的Ticket 5次.

如果我只是让workOrders成为一个Eager Fetch并删除了获取代码,它就可以正常工作.

谁能帮我?提前致谢.

更新: …

jpa criteria-api jpa-2.0

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

为什么第一次调用构造函数的时间比其他函数多10倍?

class testx
{
  public testx()
  {
    long startTime = System.nanoTime();
    System.out.println((System.nanoTime() - startTime));
  }

  public static void main(String args[])
  {
      new testx();
      new testx();
      new testx();
  }
}
Run Code Online (Sandbox Code Playgroud)

我总是得到类似的结果7806 660 517.为什么第一次通话比其他通话时间多10倍?

java performance time nanotime

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

.NET程序未获得经过验证的服务器证书

我有一个相当简单的LDAP客户端,当连接到389端口(LDAP)时可以正常工作,但是当我尝试连接到636端口(LDAPS)时失败,并显示“ LDAP服务器不可用”。

namespace MyNS
{
  class ProgramLdap
  {
    private static LdapConnection CreateConnection(String baseDn, string usuario, string password)
    {
      LdapConnection ldapConnection = new LdapConnection(
        new LdapDirectoryIdentifier("myserver.example", 636, true, false));
      ldapConnection.SessionOptions.SecureSocketLayer = true;
      ldapConnection.SessionOptions.ProtocolVersion = 3;
      // [CODE MODIFICATION HERE]
      ldapConnection.Credential = new NetworkCredential(usuario, password);
      ldapConnection.AuthType = AuthType.Basic;
      ldapConnection.Timeout = new TimeSpan(1, 0, 0);
      return ldapConnection;
    }

    static void Main(string[] args)
    {

      LdapConnection ldapConnection = CreateConnection("", "myLdapUser", "noneOfYourBusiness");
      SearchRequest searchRequest = new SearchRequest(
        "ou=usuarios,dc=Dexter,dc=local",
         String.Format("(&(objectclass=person)(cn={0}))", user),
         SearchScope.Subtree,
         new string[0]);
       SearchResponse searchResponse = …
Run Code Online (Sandbox Code Playgroud)

.net c# ssl ldap

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

从层次结构中检索的实体类

在我的项目中,我有一个JPA层次结构Location -> Site.

@Entity
@Table(name = "LOCATION")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="LOC_TYPE",discriminatorType=DiscriminatorType.STRING)
public class Location {
  ...
}

@Entity
@DiscriminatorValue("SI")
public class Site extends Location {
  ...
}
Run Code Online (Sandbox Code Playgroud)

现在,每个Employee都有一个已Location分配的列表(即使,据我所知,所有这些位置实际上都是Site).在某些方面,我需要分配的Sites 列表Employee(注意,我已经定义的关系是Locations).

使用Hibernate 3.2,我可以Location通过判别式编写查询和过滤; 返回的类是更具体的子类vg的实例:

Query query = em.createQuery("SELECT loc FROM Location loc WHERE loc.type=\"SI\"");
List<Location> locations = (List<Location>) query.getResultList();
for (Location location : locations) {
  Site mySite = (Site) location;
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我没有找到任何文档来告诉JPA规范是否保证这种行为,或者只是来自Hibernate的实现决策.在最后一种情况下,我不应该使用这种方法,因为如果我切换提供者它可能会改变).

你能告诉我标准是否支持我的方法吗?

顺便说一句,我在Hibernate 3.2上使用JPA 1

更新: …

jpa

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

具有@OneToOne关系的jpa规范

我想将jpa信息库与规范一起使用

现在我有两张桌子

@Entity
@Table(name="user")
public class User implements Serializable {

private static final long serialVersionUID = 1L;

private Long idUser;

private Area area;

@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="iduser")
public Long getIdUser() {
return idUser;
}
public void setIdUser(Long idUser) {
this.idUser = idUser;
}

@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idarea")
public Area getArea() {
    return area;
}

public void setArea(Area area) {
    this.area = area;
}

}
Run Code Online (Sandbox Code Playgroud)

和面积表

@Entity
@Table(name = "area")
public class Area {

@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="idarea")
private Long idArea;

@Column(name="area_name")
private String areaName; …
Run Code Online (Sandbox Code Playgroud)

java repository criteria-api jpa-2.0

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

如何证明是否没有间隔重叠?

如果没有时间间隔重叠,我必须实施。

时间间隔看起来像这样:

0-100
100-200
200-500
500-1000
1000-2000 ect....
Run Code Online (Sandbox Code Playgroud)

现在,时间间隔分别存储在具有min(0,100,200,500 ...)和max(100,200,500 ...)的arraylist中

如果添加新的间隔,则必须检查现有间隔是否没有重叠。例如:

250-280还可以300-600还可以

但是,我不知道该怎么做?

java algorithm intervals

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