小编sal*_*inx的帖子

如何使用特定的JRE交付我的Java应用程序?

有人知道如何将特定的JRE与已编译的Java应用程序一起打包吗?我目前有一个可执行jar文件,并希望将JRE 6 Update 31放入其中.因此,无论客户端安装了哪个JRE版本,应用程序都会使用随附的JRE.解决方案应该独立于平台.

有任何想法吗?提前谢谢了!

java

36
推荐指数
5
解决办法
3万
查看次数

如何检查文件是否被另一个进程(Java/Linux)打开?

我试图检查某个java.io.File是否由外部程序打开.在Windows上我使用这个简单的技巧:

try {
    FileOutputStream fos = new FileOutputStream(file);
    // -> file was closed
} catch(IOException e) {
    // -> file still open
}
Run Code Online (Sandbox Code Playgroud)

我知道基于unix的系统允许在多个进程中打开文件...是否有类似的技巧可以为基于unix的系统实现相同的结果?

任何帮助/黑客高度赞赏:-)

java linux file

26
推荐指数
3
解决办法
3万
查看次数

iOS:为什么Facebook注销按钮显示不正确?

我正在尝试将Facebook登录集成到我的iOS应用程序中(使用XCode 6+和部署目标是iOS 7.0).我在故事板中将一个普通的UIButton放到我的ViewController中,然后用FBSDKLoginButton更改为自定义类,因为我需要的按钮尺寸比原来大一些.

登录过程运行良好,登录按钮图像显示完美,但登录后按钮变为"注销",背景看起来透明,后面有一些奇怪的白色矩形.

以下是该问题的说明:

在此输入图像描述

有人知道我做错了什么吗?

facebook ios facebook-login

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

如何在Netbeans中使用Eclipse-Link JPA应用静态编织Ant任务?

我使用的是Netbeans 7.1.1和Glassfish 3.1.2服务器.作为JPA提供商,我决定使用随Netbeans一起提供的eclipse-link 2.3.0.因为我想使用延迟提取,而我的项目由大约45个JPA实体类组成,它们之间有很多关系,所以我决定使用静态编织.此外,@ Entity类位于单独的Class Lib项目中,而persistence.xml位于EJB项目中.

我已按照此处的说明操作:http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving

我将ant-task放入build-impl.xml文件中(如下).使用Netbeans时这是正确的吗?这是build-impl.xml的片段:

<target name="-post-jar" description="New task definition for EclipseLink static weaving">
    <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"/>
</target>
<target name="weaving" description="perform weaving" depends="-post-jar">
    <weave  source="${dist.jar}\MyProject.jar"
            target="${dist.jar}\MyProject_Weaved.jar"
            persistenceinfo="${dist.jar}..\..\MyProjectEE\MyProject-ejb\build\classes\META-INF\persistence.xml"
            loglevel="FINER">
        <classpath>
            <pathelement path="${dist.jar}\lib\eclipselink-2.3.0.jar"/>
            <pathelement path="${dist.jar}\lib\javaee-api-6.0.jar"/>
            <pathelement path="${dist.jar}\lib\jasypt-1.9.0.jar"/>
            <pathelement path="${dist.jar}\lib\javax.persistence-2.0.jar"/>
            <pathelement path="${dist.jar}\lib\org.eclipse.persistence.jpa.jpql_1.0.0.jar"/>
            <pathelement path="${dist.jar}\lib\joda-time-2.1.jar"/>
            <pathelement path="${dist.jar}\lib\jms.jar"/>
        </classpath>
    </weave>
</target>
Run Code Online (Sandbox Code Playgroud)

pathelement路径中的所有jar文件也作为库包含在Netbeans IDE中.点击"清理和构建"时,我现在收到以下错误:

D:\workspace\MyProject\nbproject\build-impl.xml:703: taskdef class org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask cannot be found
using the classloader AntClassLoader[]
Run Code Online (Sandbox Code Playgroud)

我在这里弄错了什么?

java static entity jpa eclipselink

10
推荐指数
2
解决办法
4446
查看次数

在Java 5/6中重定向ProcessBuilder的输出?

我正在寻找一种方法来重定向Process/ProcessBuilder的输出?我知道它在Java 7中可以这样工作:

ProcessBuilder builder = new ProcessBuilder(command);
builder.redirectOutput();
Process process = builder.start();
Run Code Online (Sandbox Code Playgroud)

但我对Java 5/6也需要相同的...任何帮助高度赞赏.

java redirect process processbuilder

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

Java 7:如何在Java中实现拖放?

我目前正在尝试使用Java 7 Update 21进行拖放.

我的目标操作系统是:

  • Windows 7的
  • Ubuntu 12.04
  • Mac OSX 10.6/10.8

要求是:

  • 从文件系统拖动文件并将其拖放到我的Java应用程序(将文件的副本复制到临时目录) - >适用于Linux和MacOSX和Windows

  • 从Thunderbird拖动电子邮件并将它们放到我的Java应用程序中(将它们保存为文件系统上的完整*.eml文件)

以下代码适用于Windows,MacOSX Ubuntu的应用程序的简单文件丢弃.进一步的要求是从Thunderbird中删除电子邮件到我的Java应用程序(邮件自动转换为*.eml文件并存储到磁盘).这也适用于Windows,但我在Ubuntu和MacOSX中得到了"Data Flavor not supported exception" ...

编辑:我在Ubuntu上尝试使用OpenJDK 7,但有了这个,即使是普通的文件丢弃也行不通.仅适用于Oracle的JDK版本.

有人知道如何修复/实现这一目标吗?

提前谢谢了!

这是一个简单的可执行示例:

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDropEvent;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;


public class DragDropTest extends javax.swing.JFrame {


    public DragDropTest() {
        initComponents();
        initDragAndDrop();
    }

    private void initDragAndDrop() {
        this.setDropTarget(new DropTarget(){
            @Override
            public synchronized void drop(DropTargetDropEvent dtde) { …
Run Code Online (Sandbox Code Playgroud)

java thunderbird drag-and-drop drag java-7

9
推荐指数
3
解决办法
7332
查看次数

精灵套件:为什么播放声音返回错误?

我昨天将我的Sprite Kit游戏升级到了X-Code 8.0和Swift 3.部署目标当前设置为iOS 9.3.

我通过以下方式播放音效:

self.run(SKAction.playSoundFileNamed("click.caf", waitForCompletion: false))
Run Code Online (Sandbox Code Playgroud)

声音效果播放不正确(只有大约一半的样本),我得到以下错误(自升级到X-Code 8.0和Swift 3):

SKAction: Error playing sound resource
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

audio ios sprite-kit skaction

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

如何使用C#中的struct pointer参数调用C++函数?

还有一个功能,它还没有工作.我基本上是通过使用P/Invoke从C#调用一些C++函数.有问题的功能确实向显示激光设备查询一些设备相关信息,例如最小和最大扫描速率以及每秒最大点数.

有问题的功能是:

int GetDeviceInfo(DWORD deviceIndex, DeviceInfo* pDeviceInfo);
Run Code Online (Sandbox Code Playgroud)

这是我给出的C++头文件.这是非常简短的C++ SDK描述的链接.我没有重建DLL文件的源代码,我也没有*.pdb文件(制造商无法提供):

#pragma once

#ifdef STCL_DEVICES_DLL
#define STCL_DEVICES_EXPORT extern "C" _declspec(dllexport) 
#else
#define STCL_DEVICES_EXPORT extern "C" _declspec(dllimport)
#endif

enum SD_ERR
{
    SD_ERR_OK = 0,
    SD_ERR_FAIL,
    SD_ERR_DLL_NOT_OPEN,
    SD_ERR_INVALID_DEVICE,  //device with such index doesn't exist
    SD_ERR_FRAME_NOT_SENT,
};

#pragma pack (1)
struct LaserPoint
{
    WORD x;
    WORD y;
    byte colors[6];
};

struct DeviceInfo
{
    DWORD maxScanrate;
    DWORD minScanrate;
    DWORD maxNumOfPoints;
    char type[32];
};

//////////////////////////////////////////////////////////////////////////
///Must be called when starting to use
//////////////////////////////////////////////////////////////////////////
STCL_DEVICES_EXPORT int …
Run Code Online (Sandbox Code Playgroud)

c# c++ dll interop dllimport

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

如何处理数据库崩溃(Glassfish/MySQL)?

我有一个使用Glassfish 3.1.2.2,MySQL数据库和Swing客户端应用程序的3层应用程序.是否有可能处理数据库服务器崩溃?

我试图在我的应用程序运行期间停止MySQL服务.每次我尝试通过我的一个Facade会话bean访问数据库时,我都会得到javax.ejb.EJBAccessException异常.

我想通知用户数据库当前已关闭.此外,我想将我的应用程序设置为"睡眠模式",直到数据库启动并再次运行.

处理这种情况会有什么好处(也可能是简单的)方法?

感谢您的帮助!

java mysql exception glassfish

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

JPA:两个实体之间的多对多关系?

我有两个实体类'User'和'Document'.每个用户都有一个收件箱和一个发件箱,实际上是两个列表,每个文档可能驻留在多个收件箱和发件箱的用户中.这是我的课程:

@Entity
public class User {

    @Id
    private Long id;

    @ManyToMany(mappedBy = "userinbox", cascade=CascadeType.ALL)
    private List<Document> inbox = new ArrayList<Document>();
    @ManyToMany(mappedBy = "useroutbox", cascade=CascadeType.ALL)
    private List<Document> outbox = new ArrayList<Document>();

}

@Entity
public class Document {

    @Id
    private Long id;

    @ManyToMany(cascade=CascadeType.ALL)
    private List<User> userinbox  = new ArrayList<User>();
    @ManyToMany(cascade=CascadeType.ALL)
    private List<User> useroutbox  = new ArrayList<User>();

}
Run Code Online (Sandbox Code Playgroud)

当我运行该程序并尝试将文档分配给用户的收件箱(反之亦然)时,我收到以下错误:

Error Code: 1364

Call: INSERT INTO DOCUMENT_USER (userinbox_ID, inbox_ID) VALUES (?, ?)
    bind => [2 parameters bound]

Internal Exception: java.sql.SQLException: Field 'useroutbox_ID' doesn't have …
Run Code Online (Sandbox Code Playgroud)

java many-to-many jpa default-value

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