我有一个很大的问题.那就是"如何为我的软件创建许可证".
好的,认为这是我的许可证密钥 - 12345YW
当用户输入此许可证密钥时,软件应允许他使用该软件.好吧,一旦用户输入许可证密钥,我的软件必须记住他已经输入了有效密钥,对吧?(因为从下次开始,它不必提示许可证对话框)我的问题是,如何让我的用于记住用户输入许可证的软件?在基于Windows的应用程序中,他们大多数人都在输入Windows注册表的条目.我可以这样做吗?(那么Ubuntu和Mac呢?)
我想写一个.txt文件,所以软件可以读取它并查找是否输入了许可证.然而,这是我能想到的最安全的系统.
因此,如果我输入上述许可证密钥,我该如何让我的软件记住它?如果你能给我一个代码示例,我真的很高兴(即:我不知道如何编辑注册表,如果是Windows注册表等).请帮我...
我正在为JavaScript 寻找一个简单的计算机代数系统(cas),但我找不到谷歌的任何东西.我只需要基本功能:
你知道这样的图书馆吗?
我在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 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,你可以看到边框非常混乱(下拉箭头看起来也很奇怪).
我在红色LineBorder中使用了青色LineBorder,因此您可以更清楚地看到问题.
我的操作系统是Windows 8 x64,如果重要的话.
任何人都可以告诉我为什么在Java 8上看起来如此不同?我错过了什么,或者他们是否真的搞乱了Java …
我有以下实体; 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并删除了获取代码,它就可以正常工作.
谁能帮我?提前致谢.
更新: …
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倍?
我有一个相当简单的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) 在我的项目中,我有一个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信息库与规范一起使用
现在我有两张桌子
@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) 如果没有时间间隔重叠,我必须实施。
时间间隔看起来像这样:
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 ×6
criteria-api ×2
jpa ×2
jpa-2.0 ×2
.net ×1
algorithm ×1
c# ×1
intervals ×1
javascript ×1
ldap ×1
licensing ×1
nanotime ×1
performance ×1
registry ×1
repository ×1
security ×1
servlets ×1
ssl ×1
swing ×1
time ×1