小编Eug*_*ene的帖子

在.jar中加载freemarker模板文件夹

我在我的应用程序中使用freemarker模板

在将我的应用程序部署到jar文件之前,我需要做的就是加载我的模板: cfg.setDirectoryForTemplateLoading(new File("templates"));

其中加载了我在项目中创建的模板文件夹中的所有模板.

现在,在转移到maven并将我的应用程序部署到可执行jar之后.应用程序无法再找到此文件夹(我已在.jar文件中检查,并且"templates"文件夹已部署在根目录中)

我已经尝试过我所知道的一切,但没有运气.

我现在应该如何加载我的所有模板?(我假设如果我将文件夹放在.jar文件之外但在同一目录中它将起作用.但这不是我想要的.)

谢谢.

java freemarker maven

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

如何在java中翻转BufferedImage

我得到RGB24字节数组,并希望用Java显示它.

public void getByteArray(byte byteArray[]){     
        int count1 = 0;
        byte temp1 = 0;

        for (int i = 0; i < byteArray.length; i++) {       //The order of RGB24 is red,green and blue.Change the
            //order to blue,green and red so that java can use TYPE_3BYTE_BGR to recognize it
            if (count1 == 0) {
                temp1 = byteArray[i];  
                count1++;
            } else if(count1 == 1) {
                //do nothing
                count1++;
            } else if(count1 == 2) {
                byteArray[i - 2] = byteArray[i];
                byteArray[i] = temp1;
                count1=0;
            } …
Run Code Online (Sandbox Code Playgroud)

java rgb swing bufferedimage awt

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

执行自定义本机查询时无法提取 ResultSet

我正在使用 Spring Data JPA,我想封装一个执行特定 SQL 的方法。我在以下事项中这样做:

@Component
public interface UserRepository extends CrudRepository<User, String> {
  @Query(
      value = "delete from User u where u.alias = :alias",
      nativeQuery = true
      )
  void deleteUserByAlias(@Param("alias") String alias);
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到了以下消息:

{
  "timestamp": "2018-12-11T15:54:54.627+0000",
  "status": 500,
  "error": "Internal Server Error",
  "message": "could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet",
  "path": "/user/delete"
}
Run Code Online (Sandbox Code Playgroud)

那么问题出在哪里呢?

java spring spring-data-jpa

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

如何制作圆角矩形JTextField?

我想制作一个圆形矩形JTextField.我写了一个AbstractBorder的子类来实现它.但是我遇到了一些问题.我的要求是: 在此输入图像描述

我得到的是:

在此输入图像描述

我的代码是:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.AbstractBorder;
import javax.swing.border.EmptyBorder;


public class JTextFieldTest {
    JTextField textField;
    boolean activate = false;

    public void createUI(){
        JFrame frame = new JFrame("Test JTextField");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(true);

        MainPanel mainPanel = new MainPanel();
        frame.add(mainPanel,BorderLayout.CENTER);

        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        JTextFieldTest jTextFieldTest = new JTextFieldTest();
        jTextFieldTest.createUI();
    }

    @SuppressWarnings("serial") …
Run Code Online (Sandbox Code Playgroud)

java swing awt jtextfield

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

当我对 JPanel 使用按键绑定时,为什么无法获取 KeyEvent.VK_TAB

如果用户关注当前窗口并按下某个键,我将打印相关信息。但是,它适用于某些键,例如“a”,但不适用于“tab”。这是一个简单的演示:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;


public class KeyBindingTest {
    public static void main(String[] args) {
        KeyBindingTest test = new KeyBindingTest();
        test.createUI();
    }

    public void createUI(){
        JFrame frame = new JFrame("KeyBinding Test");
        MainPanel mainPanel = new MainPanel();
        frame.add(mainPanel,BorderLayout.CENTER);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    @SuppressWarnings("serial")
    class MainPanel extends JPanel{
        public MainPanel(){
            setPreferredSize(new Dimension(200, 200));
            //========================key binding============================
            requestFocusInWindow();
            String aString = "aStr";
            getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), aString);
            getActionMap().put(aString, new AbstractAction() {          
                @Override
                public void …
Run Code Online (Sandbox Code Playgroud)

java swing awt key-bindings

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

单击不相关的按钮时,为什么我的键绑定无法正常工作?

我创建了一个简单的演示.如果在mainPanel上触发特定键Stroke事件,将显示消息"a is typed".但是,按下主面板下方的按钮后,它不起作用.这是KeybindingTest类及其内部类:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class KeybindingTest {
    private JFrame frame;
    private MainPanel mainPanel;
    private ButtonPanel buttonPanel;
    public static void main(String[] args) {
        KeybindingTest test = new KeybindingTest();
        test.createUI();
    }

    public void createUI(){
        frame = new JFrame("Keybing Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainPanel = new MainPanel();
        buttonPanel = new ButtonPanel();
        frame.add(mainPanel,BorderLayout.CENTER);
        frame.add(buttonPanel,BorderLayout.SOUTH);
        KeybindingListener.getInstance().keybinding(mainPanel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    @SuppressWarnings("serial")
    class MainPanel extends JPanel{
        @Override
        public Dimension getPreferredSize() {
            // …
Run Code Online (Sandbox Code Playgroud)

java swing focus awt key-bindings

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

如何实现模态对话框的效果

我有一个父窗口,它将启动另一个窗口.当子窗口启动时,我希望它显示为模式对话框.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class ModalDialogTest {
    public void createUI(){
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        JPanel mainPanel = new JPanel();

        mainPanel.setBorder(BorderFactory.createEmptyBorder(200, 200, 200, 200));
        JButton openButton = new JButton("Open a frame");
        openButton.addActionListener(new ActionListener() { 
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                AnotherWindow anotherWindow = new AnotherWindow();
                anotherWindow.createUI();
            }
        });
        mainPanel.add(openButton,BorderLayout.CENTER);

        frame.add(mainPanel,BorderLayout.CENTER);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java swing awt

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

如何从另一个版本获取工件

假设有两个构建A和B。构建A将为工件构建源,构建B将测试由构建A生成的工件。

如何将工件从版本A转移到版本B。

teamcity

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

为什么Graphics2D.setStoke()不适用于Graphics2D.drawString?

我希望字符串具有不同的宽度,以便我设置Graphics2D的笔划,代码在这里:

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class StrokeTest {
    public static void main(String[] args) {
        StrokeTest test = new StrokeTest();
        test.createUI();
    }

    public void createUI(){
        JFrame frame = new JFrame();
        frame.add(new MainPanel());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    @SuppressWarnings("serial")
    class MainPanel extends JPanel{
        public MainPanel(){
            setPreferredSize(new Dimension(400, 300));
        }
        protected void paintComponent(Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            g2d.setColor(Color.red);
            g2d.setStroke(new BasicStroke(10));
            g2d.drawString("I am a string", 100, 100);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用g2d.setStroke(new BasicStroke(10)) …

java fonts swing awt stroke

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

Spark使用s3a:java.lang.NoSuchMethodError

我正在做一些关于spark_with_hadoop2.7(2.4.3),hadoop(3.2.0)和Ceph luminous的组合的事情。当我尝试使用spark访问ceph时(例如,spark-sql在shell上启动),出现如下异常:

 INFO impl.MetricsSystemImpl: s3a-file-system metrics system started
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.ProviderUtils.excludeIncompatibleCredentialProviders(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/Class;)Lorg/apache/hadoop/conf/Configuration;
        at org.apache.hadoop.fs.s3a.S3AUtils.getAWSAccessKeys(S3AUtils.java:740)
        at org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider.<init>(SimpleAWSCredentialsProvider.java:58)
        at org.apache.hadoop.fs.s3a.S3AUtils.createAWSCredentialProviderSet(S3AUtils.java:600)
Run Code Online (Sandbox Code Playgroud)

对于NoSuchMethodError,这很可能是因为根据how-do-i-fix-a-nosuchmethoderror编译的类版本与运行的类版本不同。

要访问, 实际上使用了Cephaws相关的jaraws-java-sdk-bundle-1.11.375.jar及其hadoop-aws-3.2.0.jar下的文件。$HADOOP_HOME/share/hadoop/tools/lib我做了以下操作:

1、将这两个jar复制到$SPARK_HOME/jars
2、修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh添加以下语句:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*

通过执行上述步骤,我可以启动 hdfs 来访问 ceph,例如,我可以用来hdfs dfs -ls列出 ceph 存储桶下的文件夹。它证明与aws相关的jar工作正常。(正如我的理解)。

但是为什么当我调用 Spark 时会抛出有关 aws s3a 的异常?

hadoop ceph apache-spark

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

为什么每次我们想要附加文件时都需要打开文件

作为主题如何附加到文件?,大多数答案是关于打开一个文件并附加到它,例如:

def FileSave(content):
    with open(filename, "a") as myfile:
        myfile.write(content)

FileSave("test1 \n")
FileSave("test2 \n")
Run Code Online (Sandbox Code Playgroud)

为什么我们不提取myfile,只在FileSave调用时写入它.

global myfile
myfile = open(filename)
def FileSave(content):
    myfile.write(content)

FileSave("test1 \n")
FileSave("test2 \n")
Run Code Online (Sandbox Code Playgroud)

后一个代码是否更好导致它只打开文件一次并多次写入?或者,没有区别因为python中的内容只保证文件只打开一次,尽管open多次调用该方法.

python

0
推荐指数
1
解决办法
82
查看次数